XL DOS
EXTENDED BASIC DOS
par D.Sebbag et F.Broche
GUIDE DE L'UTILISATEUR
Félicitations! Vous êtes l'heureux possesseur du XL DOS. Ce dernier va enfin réellement exploiter à fond toutes les possibilités supplémentaires des disquettes par rapport aux cassettes et donner une raison d'exister à votre MICRODISC ORIC. Pour cela, des pages écran vous permettront d'utiliser les nombreuses et puissantes commandes du DOS. Elles sont votre guide, la feuille accompagnant la disquette ne servant qu'à la mise en route. Voyons d'abord comment les utiliser...
Chapitre I
LES PAGES ÉCRAN
Tout d'abord, deux remarques très importantes, puisqu'elles concernent aussi bien les pages guide que les commandes de l'XL DOS:
-Pour l'XL DOS, les minuscules sont équivalentes aux majuscules.
-Tout mot non reconnu comme mot-clé BASIC est considéré comme une commande de l'XL DOS.
Ceci a comme conséquence immédiate que l'emploi du '!', même s'il reste possible, est inutile; les commandes de l'XL DOS font partie, du moins vis à vis de l'utilisateur, des commandes classiques du BASIC et ne font plus surajoutées, comme c'est le cas sur le DOS V1.1, ainsi que sur tous les logiciels ayant vocation de langages et tournant sur Oric... Le '!' reste obligatoire après un THEN et un ELSE.
Les pages écran:
L'XL DOS est composé d'une cinquantaine de commandes. En dehors de ces 50 mots-clés, tout mot frappé au clavier, est considéré comme un fichier, qui sera chargé et exécuté ou non (voir pages Chargement direct).
D'autre part, les pages écran sont des fichiers, des programmes si vous préférez (ces notions ne vous sont de toute façon pas étrangères, puisqu'elles sont valables avec tous les DOS, dont celui livré d'origine avec votre lecteur). Pour voir une page écran, tapez simplement au clavier son nom (nom de fichier).
Exemple: Vous voulez des explications sur les messages d'erreurs générés par l'XL DOS, tapez simplement: ERREUR puis 'Return' ou...
erreur puis 'Return'.
La liste des pages écran vous est donnée en fin de guide, ainsi qu'une description sommaire du domaine traité.
Pour avoir des renseignements sur une commande précise du DOS, la démarche est similaire, à une nuance près: Si vous tapez au clavier une commande de l'XL DOS, elle sera exécutée comme telle. Les noms des pages écran concernant les commandes de l'XL DOS sont alors précédées d'un point, ce qui permet de les distinguer (vous verrez plus tard que le point sert en général à distinguer une commande de l'XL DOS d'un nom de fichier).
Par exemple, si vous désirez des renseignements sur la commande LOAD, tapez:
.LOAD puis 'Return'.
Lorsque le nom de la commande comporte plus de 6 caractères, il ne faut taper que les 6 premiers. La liste des commandes du DOS est donnée dans le chapitre 3.
Comment 'feuilleter' le guide:
Vous avez remarqué la zone inférieure de l'écran: Elle indique les touches à presser pour les différentes options qui vous sont offertes:
'ESC' pour sortir et retourner au BASIC
'Return' pour se replacer au début du guide
Les touches '<' et '>':
-Dans le guide, elles permettent de passer à la page suivante ou précédente.
-Dans les pages écran, elles permettent de visualiser les pages qui sont signalées dans la zone inférieure; en effet, toutes les pages écran sont chaînées: Une page comporte une page précédente et une page suivante, qui traitent souvent d'un domaine voisin. Cela permet d'avoir une vue d'ensemble et rend ce guide encore plus pratique qu'un manuel puisque l'accès à une explication est immédiat. La zone inférieure de l'écran se présentera dans ce cas sous cette forme:
'<' ou '>' pour LOAD ou UPDATE
la page visualisée étant celle du SAVE dans cet exemple précis.
A noter que comme dans les pages GUIDE, la pression de la touche 'Return' dans une page écran envoie sur la page de présentation du GUIDE.
Maintenant, essayez quelques pages et habituez-vous à les feuilleter. Vous ne risquez rien, surtout que seule la zone écran est utilisée, ce qui fait que vous pouvez consulter le GUIDE même pendant que vous programmez. Votre programme ne sera en aucun cas altéré.
Remarque: Les pages du GUIDE sont numérotées. Pour pouvoir y accéder immédiatement, tapez GUIDE suivi du numéro de la page désirée.
Exemple: Pour accéder directement à la page que vous visualisez actuellement, tapez:
GUIDE9
Lorsque le numéro de page a deux chiffres, tapez GUID suivi de ce numéro.
Exemple: Pour la page 12, tapez:
GUID12
Chapitre II
DESCRIPTION GÉNÉRALE
L'XL DOS qui se trouve sur votre disquette se compose en fait d'un programme qui se place dans la RAM overlay (les 16 K libérés par le contrôleur de votre MICRODISC) et de fichiers esclaves, l'ensemble formant les différentes commandes de l'XL DOS. Cependant, les informations contenues sur la disquette sont protégées, même si elles sont toutes accessibles par l'XL DOS. La plupart des commandes d'utilisation courante se trouvent en mémoire. On y trouve aussi des routines spéciales, qui ne sont pas des commandes, mais sont utilisées régulièrement sans que vous ne vous en rendiez compte. Ces routines très pratiques modifient votre contexte de programmation et interviennent plus ou moins profondément dans l'interpréteur BASIC et le système d'exploitation de l'Oric.
Citons par exemple la routine qui permet de considérer les commandes de l'XL DOS comme des mots-clés (pas de '!'), mais aussi la génération automatique des numéros de ligne, la gestion du BRK (pour les programmeurs en langage machine), les touches de fonctions sur Atmos etc...
Chapitre III
LES COMMANDES
Les commandes de l'XL DOS sont de trois types principaux:
-Les commandes de travail sur disque.
-Les commandes d'aides à la programmation et du BASIC étendu.
-Les commandes de gestion de fichiers.
Voyons maintenant en détail le type des différentes commandes.
1) Les commandes de travail sur disque:
LOAD :Chargement de fichiers
SAVE :Sauvegarde de fichiers
UPDATE :Mise à jour de fichiers
DIR :Catalogue de fichiers
DEL :Effacement de fichiers
REN :Changement de nom
PROT :Protection de fichiers
FORMAT :Formatage de disquette
COPY :Copie de fichiers
BACKUP :Copie de disquette(s)
SYS :Configuration de disquette
INIT :Initialisation de disquette
DRV :Disquette par défaut
EXTNS :Extension par défaut
2) Les commandes d'aide à la programmation et du BASIC étendu:
Aide à la programmation:
OLD :Récupération de programmes
RENUM :Renumérotation de lignes
MERGE :Fusion de fichiers
DELETE :Effacement de lignes
NUM :Numérotation automatique
BASIC étendu:
ACCEPT :Saisie de texte formatée
RESTORE :Positionnement DATA
SWAP :Echange de variables
CODE :Codage BASIC
EXECUTE :Exécution de chaîne BASIC
ANGLE :Instruction graphique de type LOGO
ROT :Instruction graphique de type LOGO
BOX :Instruction graphique de type LOGO
Commandes système:
ON :Gestion du '!'
OFF :Gestion du '!'
FUNC :Touches de fonction
PRINTER :Périphérique imprimante
RESET :Boot de l'XT DOS
SEI :Autorisation des interruptions
CLI :Autorisation des interruptions
3) Commandes de gestion de fichiers
FILE :Fichier par défaut
Fichiers 'matrice'
MSAVE :Sauver des tableaux
MLOAD :Rappel des tableaux
Fichiers 'séquentiels'
CLOSE :Fermeture de fichiers
FSTART :Retour début de fichier
FJUMP :Saut d'enregistrements
FEND :Saut à la fin du fichier
PUT :Ecriture sur le fichier
TAKE :Lecture de variables
OPEN"L" :Ouverture de fichiers
Fichier à accès direct
OPEN"R" :Ouverture du fichier
CLOSE :Fermeture du fichier
FIELD :Définition des champs
LSET :Ecriture dans les champs
RSET :Ecriture dans les champs
PUT :Ecriture d'une fiche
TAKE :Lecture d'une fiche
&( ) :Nombre de fiches
Fichier 'chaîne' et 'disque'
OPEN"S" :Ouverture du pseudo fichier
OPEN"D" :Ouverture du fichier disque
ANNEXE: LISTE DES PAGES ECRAN
NOMS :Noms de fichiers
ERREUR :Messages d'erreur
RWTS :Gestion interne disquettes
RAMROM :RAM overlay
FICH :Généralités sur les fichiers
SEQ :Fichiers séquentiels
DIRECT :Fichiers directs
DISQUE :Fichiers disques
CHAINE :Fichiers chaînes
'ESC' :Touche spéciale
NOMS DE FICHIERS
Les noms de fichiers que vous précisez dans les commandes de l'XL DOS ont une structure bien précise. Ils doivent être entourés de guillemets, comme des chaînes alphanumériques. Ils comportent en général deux parties:
Le nom proprement dit, qui se compose au plus de 6 caractères alphanumériques (symboles exclus) mais peut n'en comporter aucun puisque chaque caractère absent est considéré par l'XT DOS comme un espace.
L'extension, qui a au plus 3 caractères, le principe restant similaire à celui de la partie nom.
Chacune de ces parties est optionnelle.
Lorsqu'on désire que la commande ait un effet sur un lecteur distinct du lecteur par défaut, le numéro du lecteur souhaité doit être précisé juste après le guillemet et suivi d'un tiret. Les numéros de lecteur vont de 0 à 3.
Exemples:
"2-TOTO.COM" est valide et la commande agira, à condition que le lecteur 2 soit présent.
"PROGRAMME.BAS" est invalide, car la partie nom comporte plus de 6 caractères.
"TOTO-.BIN" est invalide, car le nom comporte un caractère non alphanumérique.
Les caractères 'jokers':
Dans certaines commandes, il peut être utile de préciser plusieurs noms de fichiers à la fois. Par exemple dans un COPY, lorsque vous souhaitez copier tous les fichiers ayant une extension .COM. Deux caractères peuvent être utilisés à cet effet, c'est ce que l'on appelle les caractères 'jokers'. Il s'agit de '*' et '?'. Le caractère '*' désigne un groupe de caractères et doit être placé à la fin du nom ou de l'extension. Le caractère '?' désigne un unique caractère quelconque.
Exemples: Vous souhaitez désigner tous les noms de fichiers commençant par AB et ayant une extension quelconque: Le nom sera: "AB*.*"
Vous voulez tous les noms de deux caractères et dont le second sera un Q: Le nom sera "?Q"
Remarque: Les noms de fichiers peuvent être des variables alphanumériques: A$, avec A$="TOTO.COM" est un nom de fichier valide.
Erreurs: 'Invalid filename error' lorsqu'un nom de fichier invalide a été spécifié.
GESTION DES ERREURS
Le DOS possède une trentaine de messages d'erreur. Il sont en minuscule.
Tous ces nouveaux messages peuvent être 'interceptés', de manière qu'ils n'interrompent pas le déroulement du programme: Il suffit de faire:
POKE#4FD,1
POKE#4FD,0 les autorise à nouveau.
Dans tous les cas, le numéro de l'erreur se trouve en #4FF.
S'il s'agit de FDERR, le code de l'erreur d'entrée/sortie se trouve en #4FE.
Voici la liste des messages:
01 File not found
02 Invalid command end
03 No drive number
04 Bad drive number
05 Invalid file name
06 FDERR= (code d'erreur)
07 Illégal attribute
08 Wildcard(s) not allowed
09 File already exists
10 Insufficient disc space
11 File open
12 Illegal quantity
13 End adress missing
14 Start adress > end adress
15 ?
16 Renamed file not on same disc
17 Unknown array
18 Target drive not source drive
19 Destination not specified
20 Cannot merge and overwrite
21 Single target file illegal
22 Syntax
23 File name missing
24 Source file missing
25 ?
26 Disc write-protected
27 Incompatible drives
28 File not open
29 File end
30 Bad file mode
31 Bad record number
32 Field overflow
33 String too long
34 File type
35 Can't open
36 Unknown field name
Certaines erreurs particulières seront traitées avec les instructions qui risquent de les provoquer. D'autres peuvent se produire pour toutes les commandes, elles seront expliquées une fois pour toutes ici.
'File not found' :Le fichier demandé n'est pas sur la disquette.
'Invalid command end' :L'option précisée est invalide.
'No drive number' :Tentative d'opération sur un drive non connecté.
'FDERR=' :Erreur système: Disquette ou connections défectueuses.
'Wildcard(s) not allowed' :Caractères 'jokers' interdits.
'Insufficient disc space' :Tous les secteurs de la disquette sont occupés.
'Illegal quantity' :Paramètre spécifié trop grand.
'Syntax' :Rien à signaler...
'File name missing' :L'XL DOS voulait un nom de fichier.
'Type mismatch' :Une chaîne à la place d'un nombre et vice versa.
'Disc write protected' :Tentative d'écriture sur un disque protégé par la languette.
'Illegal attribute' :Option de protection invalide.
RWTS
RWTS veut dire: Read Write Track Sector. C'est à dire lecture ou écriture des pistes/secteurs. C'est le nom donné aux routines du DOS chargées des opérations de contrôle des disquettes. Pour ce faire, elles agissent sur les registres du contrôleur de disque:
#310 :Registre de commande drive
#311 :Registre de piste
#312 :Registre de secteur
#313 :Registre de données
#314 :Commande interface & contrôleur
#315-317 :Commande interface & contrôleur
#318 :Donnée prête
#319-3FF :Image VIA ou extensions...
RAM OVERLAY
En plus de 48 Ko normalement disponibles, l'Oric possède 16 Ko supplémentaires de RAM, placés aux mêmes adresses que la ROM (#C000-#FFFF). C'est ce que l'on nomme la RAM en OVERLAY.
Le lecteur de disquette utilise la RAM overlay pour y mettre le DOS. Mais pour pouvoir utiliser la RAM et la ROM, il faut des routines qui assurent le passage de l'une sur l'autre. Ces routines sont implantées dans la zone #400-#4FF. Il convient donc de n'utiliser cette zone sous aucun prétexte: l'Oric ne s'y retrouverait pas! Toutefois, l'analyse de ces routines vous aidera à comprendre le fonctionnement du passage RAM/ROM.
GESTION DE FICHIERS
Vous l'aurez constaté, le mot fichier est employé très souvent dans ce manuel. En fait, le mot fichier revêt deux significations différentes:
-Sens général: Est appelé fichier tout ce qui a un nom sur le catalogue de la disquette.
-Sens particulier: Suite de données ayant une signification pratique: Fichier adresses, Fichiers clients...
On donne le nom de 'gestion de fichiers' à l'élaboration de fichiers de la seconde catégorie.
Les fichiers dont nous allons parler sont donc un ensemble de données enregistrées sur disque, organisées de manière à pouvoir être relues en mémoire centrale plus ou moins facilement.
Cas le plus courant de fichier: Un fichier adresses, qui comportera nom, adresse et numéro de téléphone.
Les fichiers sont principalement de deux types classiques:
-Accès séquentiel: Le plus simple à mettre en oeuvre, c'est aussi le moins performant: Toutes les données sont stockées les unes après les autres, on accède à une donnée après avoir lu toutes les précédentes: Facilité d'utilisation, mais lenteur intrinsèque.
-Accès direct: Les variables ne sont pas organisées de manière séquentielle, mais en fiches, auxquelles on peut accéder directement.
L'XL DOS autorise deux autres types de fichiers, que l'on trouve rarement même sur de gros systèmes:
-Les fichiers chaînes: Un peu semblables, dans la forme, aux fichiers à accès direct, ce sont des fichiers qui ne font pas appel aux disques permettant de faciliter le travail sur les chaînes de caractères.
-Les fichiers disques: Eux aussi assez proches des fichiers directs. Ils permettent de travailler directement sur les secteurs de la disquette: A réserver aux utilisateurs avertis !!!
ORGANISATION GENERALE
L'XL DOS utilise un système original pour gérer les fichiers, qui lui permet de n'utiliser que la mémoire strictement disponible. Il stocke les informations nécessaires dans l'espace utilisateur, de manière tout à fait transparente pour le BASIC.
Attention: Un clear efface toutes les données des fichiers et rend donc impossible la fermeture des fichiers. Cet inconvénient n'en est un que lors de la mise au point des programmes, la méthode de travail étant en revanche plus performante: Problème de choix donc (N'oubliez pas que toute modification de ligne BASIC effectue un CLEAR par exemple.)
Toute la gestion de fichiers s'organise en fait autour de tampons de longueur fixe (254 pour le séquentiel, longueur d'un secteur pour l'accès disque) ou variable pour les fichiers directs ou chaînes.
A chaque tampon est affecté un numéro, appelé numéro logique du fichier (en abrégé NL).
Lors de l'ouverture d'un fichier direct ou séquentiel, vous affecterez donc un nom de fichier (6 caractères dans ce cas) à un numéro logique. Un numéro logique peut prendre des valeurs de 1 à 254. Le fichier numéro 0 est en fait réservé par le système pour la sauvegarde des matrices (Cf. MSAVE, MLOAD).
Procédure générale d'opération sur les fichiers:
1-Il faut, grâce à l'ordre OPEN, 'ouvrir' le fichier, de manière à ce que l'Oric prenne certains repères sur le disque notamment et les appelle en mémoire centrale. Bien entendu, un numéro logique ne peut être affecté qu'à un seul fichier...
2-Vous pouvez maintenant lire ou écrire sur le fichier (pour les instructions de lecture/écriture, voir les rubriques SEQ, DIRECT, DISQUE et CHAINE).
3-En fin de session, il faut 'fermer' le fichier (ordre 'CLOSE') pour libérer les tampons et écrire sur le disque les informations appelées en mémoire centrale par 'OPEN'.
La place manquant pour faire un véritable cours sur les fichiers, nous invitons les utilisateurs à se reporter à l'excellent livre de J. BOISGONTIER, paru aux éditions P.S.I.: 'Le BASIC et ses fichiers'.
Erreurs: 'File open' :Tentative d'ouverture d'un fichier déjà ouvert.
'File not open' :Tentative d'opération sur un fichier non encore ouvert.
'Bad file mode' :Opération incompatible avec le type de fichier
(LSET pour un fichier séquentiel par exemple).
SEQUENTIEL
Un fichier séquentiel est un fichier dans lequel on relit les informations dans l'ordre où elles ont été stockées. Ces informations sont des variables de tous types (réel, entier, chaîne).
Pour un peu faciliter les choses, vous gérez en fait un pointeur de fichier, qui vous dit où vous lisez ou écrivez. Lorsque vous ouvrez un fichier, le pointeur est placé au début du fichier.
Trois commandes agissent directement sur la position du pointeur:
FSTART :Place le pointeur en début de fichier.
FEND :Place le pointeur en fin de fichier.
FJUMP :Déplace le pointeur d'un certain nombre d'enregistrements.
D'autres commandes agissent indirectement sur le pointeur de fichier, ce sont l'écriture et la lecture, qui déplacent le pointeur sur l'enregistrement suivant.
MANIPULATION D'UN FICHIER SEQUENTIEL
Comme d'habitude, il convient d'ouvrir le fichier (voir OPEN). Pour que l'ouverture soit acceptée, il faut que le fichier ne soit pas ouvert déjà (impossible d'ouvrir un même fichier séquentiel sous plusieurs numéros logiques).
La lecture de la variable courante se fait à la position courante du pointeur par TAKE.
Exemple: TAKE #1,A,B$.
Si la fin du fichier est atteinte, le message 'END of file' est généré. Pour éviter ce genre de désagrément, il suffit de tester la variable logique &(NM) qui est vraie si la fin du fichier est atteinte. La variable &(NL) contient le type de la variable courante: 255= réel, sinon la longueur de la chaîne alphanumérique.
L'écriture se fait à la position courante du pointeur. Deux cas de figure:
-Si l'écriture se fait à la fin du fichier, dans la zone ou rien n'a été écrit, tous types de variables peuvent être écrites.
-Si l'écriture se fait au milieu du fichier, écrasant des données déjà existantes, les variables écrites et écrasées doivent être de même type, car la place correspondante a déjà été allouée. Dans le cas contraire, un 'TYPE MISMATCH ERROR' est généré.
Dans le cas de chaînes, la nouvelle écrite sera tronquée à droite si elle est trop longue ou justifiée à droite par des espaces si elle est trop courte.
DIRECT
Dans ce type de fichier, les variables ne sont pas organisées de manière séquentielle, mais en fiches, elles mêmes subdivisées en zones.
Une notion fondamentale est celle de tampon: Les lectures/écritures se feront par l'intermédiaire d'un tampon de la longueur d'une fiche.
Vous disposez donc de deux types d'instructions:
I Sauvegarde/Rappel d'une fiche.
II Travail sur le tampon.
Voyons en détail ces deux types d'instructions:
I Sauvegarde/Rappel d'une fiche.
Le transfert Disque>Tampon se fait par TAKE (#NL,)Numéro de fiche
Le transfert Tampon>Disque se fait par PUT (#NL,)Numéro de fiche
Le numéro de fiche doit être au plus égal au numéro de la dernière fiche +1. Le nombre de fiches ne peut excéder 65535.
Le numéro de la dernière fiche est donné par &(NL). La longueur d'une fiche par &(-NL).
Attention: Pour copier un fichier, il ne faut copier que le fichier d'extension .DAT.
II Travail sur le tampon.
Le tampon dans lequel vous écrivez a la longueur de la fiche, c'est aussi la longueur donnée lors de l'ouverture du fichier.
A l'intérieur de ce tampon, on définit des CHAMPS. Ce sont des zones de la fiche. On distingue trois types de champs: Entiers, réels et alphanumérique. Ces champs ont respectivement pour longueur effective: 2, 5, longueur de la chaîne. Il faut ajouter à ces longueurs un octet séparateur par champ. Ne pas oublier d'en tenir compte lors de la déclaration de la longueur d'une fiche.
Chaque type de champ a un code:
0 :Pour un champ entier,
255 :Pour un champ réel,
1 à 254 :Pour un champ alphanumérique (longueur).
Un nom de champ peut avoir au maximum 6 caractères significatifs et peut être un tableau à une dimension dont le nombre d'éléments est limité à 256.
Exemple de nom de champ: NOM, PRENOM, CADRE(I) etc...
NB: CADRE(0) <=> CADRE
Attention: Malgré leur apparence formellement identique, il ne faut pas confondre CHAMP et variable, nous allons voir comment on passe de l'un à l'autre: Pour écrire des données dans un champ, il faut utiliser les instructions LSET et RSET. Totalement équivalentes pour les champs numériques, ces 2 instructions agissent différemment sur les champs alphanumériques: Elles justifient à droite, respectivement à gauche les chaînes par des espaces ou les tronquent à droite, respectivement à gauche si elles sont trop longues. La définition des champs se fait avec l'instruction FIELD. La lecture d'un champ, autrement dit le transfert de sa valeur dans une variable est effectué par l'opérateur '>'.
Exemples:
OPEN "R","ESSAI",100,1
Ouvre le fichier "ESSAI" sous le numéro logique 1, avec une longueur de 100.
FIELD #1,NOM TO 14
Définit un champ nom, au début de la fiche, de 14 caractères.
LSET NOM < "DUPONT Jean"
Ecrit dans le tampon une variable.
NOM > E$
Transfère dans la variable E$ la valeur du tampon, soit ici: ?E$
"DUPONT Jean "
RSET au lieu de LSET aurait donné E$=" DUPONT Jean"
DISQUE
Voici un type très particulier de fichier. Il permet à ceux qui connaissent la structure d'une disquette de travailler directement dessus à partir du BASIC.
Le principe est simple: On ouvre une sorte de fichier direct dont la longueur est celle d'un secteur.
Seules diffèrent l'écriture et la lecture du tampon sur disque: Au lieu de préciser des numéros de fiches, on précisera directement l'adresse piste secteur du secteur à écrire. Pour modifier le tampon, vous disposez des instructions: FIELD, <, LSET, RSET.
Détail des instructions de lecture/écriture:
TAKE (#NL,)Piste,Secteur
Rien à signaler...
PUT (#NL,)Piste,Secteur,Octet0,Octet1,Longueur secteur
Structure d'un secteur: Octet0, Octet1, Longueur effective du secteur.
Vous lisez/écrivez en fait les 254 derniers octets du secteur.
Les 2 premiers sont accessibles en lecture par &(NM) et &(-NL) et en écriture lors du PUT par Octet0 et Octet1. Longueur secteur est le troisième octet du secteur, il a été isolé.
Attention: Les champs ne contiennent pas de séparateur.
CHAÎNE
Ce quatrième et dernier type de fichier permet de simplifier le travail sur les chaînes de caractères.
C'est une sorte de fichier direct qui n'aurait pas de correspondance sur disque:
Même type de travail sur les tampons que pour les fichiers à accès direct ou à accès disque, mais pas d'instructions de lecture/écriture sur la disquette.
Une excellente occasion de se familiariser avec le travail sur les tampons!!!
ESC
La touche 'ESC' a une utilisation particulière dans toutes les commandes de l'XL DOS et dans les commandes annexes (INIT, SYS...).
Elle permet de sortir directement de la commande en cours, ce qui peut être souvent très pratique.
Le rôle particulier de la touche 'ESC' n'est pas rappelé dans toutes les commandes.
Rappel: Lors d'un ACCEPT (voir ce mot-clé), la touche 'ESC' a aussi un rôle particulier. Dans tous les cas, si vous voulez générer des attributs vidéo, 'CTRL/Z' est valide.
LES COMMANDES DE L' XL DOS
LOAD
SYNTAXE: (!)LOAD Nom de fichier,options
Chargement de fichier.
Les options sont:
,J pour chaîner 2 programmes
,D pour visualiser les adresse
,N pour inhiber l'exécution automatique
,A adresse pour charger à partir de l'adresse spécifiée.
Chargement direct:
Il est possible de charger un fichier directement sans passer par la commande LOAD: En effet, tout mot tapé au clavier, s'il n'est pas une commande BASIC ou XL DOS est considéré comme un nom de fichier à charger.
Donc, pour charger par exemple le fichier RIRI.TXT, taper simplement RIRI.TXT (on ne peut pas faire plus simple).
Lorsqu' aucune extension n'est spécifiée, l'extension .COM est prise par défaut. Par exemple, pour charger le fichier ZORGON.COM, taper ZORGON puis 'Return'.
Lorsqu'un nom de fichier commence par un mot-clé du BASIC ou du DOS (exemple ONDE.BAS), il doit être précédé d'un point afin de le distinguer du BASIC. Donc il faudra taper .ONDE.BAS. Ces contraintes ne sont pas applicables à la commande LOAD, qui permet en outre de spécifier les options vues au début.
En mode OFF ('!' obligatoire), les noms de fichiers à charger directement doivent être aussi précédés du point d'exclamation.
A noter que les noms de fichiers de l'XT DOS, contrairement au DOS V1.1, peuvent comporter des mots-clés BASIC, sans que cela provoque un message 'Invalid filename error'.
SAVE
SYNTAXE: (!)SAVE Nom de fichier,options
Sauvegarde de fichier sur disquette
Les options sont:
,A adresse de début ,E adresse de fin, pour un fichier binaire.
,T adresse de lancement d'un programme en langage machine.
,AUTO pour exécution automatique d'un programme BASIC ou lancement à l'adresse de début d'un programme en langage machine.
Erreurs:
'End address missing' lorsque seule l'adresse de début (option A) a été précisée.
'Start address > end adress' lorsque l'adresse de début est supérieure à l'adresse de fin, précisées par les options ,A et ,E.
UPDATE
SYNTAXE: Identique à celle de SAVE
Cette instruction est très utile pour la mise au point de programmes et la sauvegarde des différentes versions au fur et à mesure de leur création.
Le fichier concerné sera d'abord sauvé, même si un fichier de même nom existait déjà (la version précédente). Puis l'XL DOS cherchera dans le catalogue un fichier de même nom et d'extension .BAK (pour backup, c'est à dire version antérieure). Si ce fichier existe, il est effacé. Ensuite, le fichier qui se trouvait avant le UPDATE sur la disquette (si le programme n'est pas mis à jour pour la première fois) voit son extension changée en .BAK: Il devient la version antérieure.
En somme, le UPDATE vous permet de toujours avoir sur la disquette de travail la dernière version et la version antérieure du programme en cours d'élaboration, tout ceci étant effectué en une seule instruction. Sans celle-ci, vous seriez obligé pour le même résultat de taper une suite de DEL, REN, SAVE.
Exemple: Vous travaillez sur le fichier RIRI.COM. Supposons que ce dernier n'existe pas à la première sauvegarde.
UPDATE"RIRI.COM"
Catalogue: RIRI.COM 1ère version
UPDATE"RIRI.COM"
Catalogue: RIRI.BAK 1ère version
RIRI.COM 2ème version
UPDATE"RIRI.COM"
Catalogue: RIRI.COM 3ème version
RIRI.BAK 2ème version
etc...
DIR LDIR
SYNTAXE: (!)DIR (nom de fichier)
(!)LDIR (nom de fichier)
Catalogue de la disquette, sur écran (DIR) ou imprimante (LDIR). Le nombre qui suit le 'Out of' est le nombre de secteurs utilisateur, déduction faite d'un secteur système et des secteurs du DIR. Ce nombre vaut au départ 834, soit 208.5 Koctets par face (augmentation de 49 Koctets par rapport au DOS V1.1).
En effet, l'XL DOS travaille sur 44 pistes de 19 secteurs, au lieu de 19 secteurs, au lieu de 40 pistes de 16 secteurs avec le DOS V1.1.
DEL
SYNTAXE: (!)DEL (nom de fichier)
Détruit le ou les noms de fichiers précisés.
Lorsque plusieurs noms sont précisés grâce aux caractères 'jokers', il est demandé de confirmer la destruction pour chaque fichier.
Répondre 'Y' pour oui.
REN
SYNTAXE: (!)REN Nom fichier TO Nom fichier
Changement de nom de fichier.
(!)REN Nom de fichier (,options)
Reconfiguration d'un fichier:
La syntaxe est pratiquement similaire à celle du SAVE, pour ce qui est des options mais au lieu d'être sauvé, le fichier concerné verra son statut modifié: Adresse de départ, de transfert etc...
Remarque: Les options non précisées laissent le statut dans son état initial.
Exemples:
REN"TOTO.COM",AUTO
Si TOTO.COM est un programme BASIC, il se lancera désormais avec un RUN.
Si TOTO.COM est un fichier machine, il se lancera à l'adresse de début du fichier.
REN"TOTO.COM",Axxxx(,Tyyyy)
TOTO.COM se chargera désormais à partir de xxxx. L'adresse de fin est automatiquement calculée: L'option Exxxx est donc inutile et invalide.
PROT
SYNTAXE: (!)PROT (nom fichier)(,option)
Pas d'option :Protection contre l'écriture (SAVE, DEL...).
Option (,P) :Protection contre le COPY, LOAD avec option...
Option (,I) :Rend le fichier invisible dans le catalogue.
Option (,N) :Annule les options ',I' ou protection en écriture.
Remarque: Les caractères 'jokers' sont autorisés.
Exemples: PROT 1 :Protège toute la disquette 1 contre l'écriture.
PROT "TOTO.COM",P :Protège contre le COPY le fichier TOTO.COM
FORMAT
SYNTAXE: !FORMAT Numéro de disque
Formate la disquette précisée.
Cette opération est indispensable pour toute disquette neuve: Il faut que l'XL DOS puisse se retrouver lors des écritures ou lectures sur la disquette.
Attention: L'opération de formatage est irréversible. Assurez-vous donc que la disquette ne contient aucun fichier intéressant.
Remarque: Les disquettes formatées avec le DOS V1.1 sont compatibles, sauf pour le BACKUP.
COPY
SYNTAXE: (!)COPY (nom fichier)(TO nom fichier)(,options)
Options:
,P et ,N :Donner le statut de protection du fichier qui sera créé.
,C :Lorsque vous ne disposez que d'un lecteur,
permet de changer de disque après chaque opération.
,O :Pour écraser le fichier cible s'il se trouvait déjà sur la disquette.
,M :Pour fusionner plusieurs fichiers en un seul.
L'option ',M' permet de regrouper plusieurs fichiers en un seul, qui sera chargé par conséquence en plusieurs endroits différents de la mémoire. Ceci est très utile avec des programmes qui comportent une partie en BASIC et une partie en langage machine.
Lorsque cette option est spécifiée, les fichiers sources sont accolés au fichier cible. Lorsque cela a été effectué pour tous les fichiers sources (spécifiés au besoin avec des caractères 'jokers'), le message 'Next:' est affiché et l'XL DOS attend que vous lui précisiez un nouveau nom de fichier.
Si vous souhaitez sortir à ce moment, pressez 'Return'. Si vous souhaitez accoler un autre fichier, tapez son nom. Les règles normales d'un nom de fichier sont applicables (spécification d'un numéro de lecteur, suivi d'un tiret etc...).
Erreurs:
'Target drive not source drive' L'option ',C' nécessite l'usage d'un seul drive.
'Destination not specified' L'option ',M' nécessite que soit précisé un fichier cible.
'Single target file illegal' Sauf dans le cas de l'option ',M', il faut que, si le nom du fichier source comporte des 'jokers', le nom du fichier cible soit, s'il est précisé, un numéro de drive.
'Cannot merge and overwrite' Les options Merge ',M' et Overwrite ',O' ne peuvent être utilisées simultanément, ce qui est logique.
BACKUP
SYNTAXE: (!)BACKUP (Numéro drive) (TO Numéro drive)
Recopie la totalité de la disquette et non fichier à fichier comme pour le COPY.
Si Numéro drive n'est pas précisé, le drive courant est pris par défaut (voir aussi DRV).
Si vous utilisez un seul drive, le BACKUP nécessitera 5 manipulations.
Attention: La disquette cible doit être formatée comme la disquette source (44 pistes de 19 secteurs).
SYS
SYNTAXE: (!) SYS
Permet de changer la configuration d'une disquette (son nom, son nombre de pistes etc...).
Cette instruction est en fait un fichier BASIC qui se trouve sur la disquette master et qui sera chargé et exécuté à chaque appel de cette instruction. Il est donc facilement modifiable par l'utilisateur.
INIT
SYNTAXE: (!)INIT (numéro de drive)
Cette commande permet de créer des disquettes 'esclaves', capables d'initialiser le système.
Elle permet aussi de personnaliser une disquette en y écrivant un message de présentation qui sera affiché à chaque 'RESET'.
DRV
SYNTAXE: (!)DRV Numéro de lecteur
Définit le lecteur par défaut, c'est à dire le lecteur qui sera utilisé lorsqu' aucun numéro de drive n'est précisé.
Remarque: Lorsque des instructions qui doivent faire appel à des fichiers esclaves sont utilisées (INIT, COPY etc...), c'est sur le lecteur par défaut que ces fichiers seront recherchés.
EXTNS
SYNTAXE: (!)EXTNS chaîne alphanumérique
Définit l'extension par défaut, c'est à dire, celle qui sera prise en considération lorsqu' elle n'est pas précisée lors d'un chargement direct. La chaîne doit comporter au plus trois caractères de type valide pour les noms de fichiers.
Remarque: L'extension par défaut après une initialisation est .COM (pour 'commande').
OLD
SYNTAXE: (!)OLD
Permet de récupérer un programme perdu à cause d'un NEW ou d'une réinitialisation.
Ceci pour le programme courant (l'adresse est contenue en #9A).
SYNTAXE: (!)OLD adresse
Modifie l'emplacement du programme BASIC.
In '0' est mis à l'adresse spécifiée et les pointeurs BASIC sont ajustés.
Exemple: Après un OLD #5000, #9A vaut #5000 et les autres pointeurs sont ajustés.
Dans tous les cas, OLD effectue un CLEAR (détruire les variables).
RENUM
SYNTAXE: (!)RENUM Pas,Origine,L1,L2
Renumérote un programme, y compris GOTO, GOSUB, THEN, ELSE, RUN.
Paramètres:
Pas :Différence entre deux lignes consécutives, 10 par défaut.
Origine :Nouveau numéro de la première ligne renumérotée, 100 par défaut.
L1 :Numéro de la 1ère ligne à renuméroter, par défaut la 1ère ligne du programme.
L2 :Numéro de la dernière ligne à renuméroter, par défaut la dernière ligne du
programme.
Attention: N'appuyer pas sur RESET pendant l'exécution!!
Tous les paramètres peuvent être omis, ils prennent alors leurs valeurs par défaut.
Les SYNTAXES suivantes sont valides: (!)RENUM <=> RENUM 10,100,0,64000
(!)RENUM 20
(!)RENUM 20,500
(!)RENUM ,500
(!)RENUM ,,1000
(!)RENUM ,,,2000
(!)RENUM 20,,40
Si un numéro de ligne est inexistant, le RENUM prendra la ligne suivante.
MERGE
SYNTAXE: (!)MERGE Nom de fichier
Fusionne le programme spécifié avec celui en mémoire, sans perdre les variables.
Les numéros de ligne des programmes peuvent être quelconques.
Dans le cas où les programmes ont des numéros de ligne communs, la ligne initiale sera effacée.
En mode programme, on peut éviter l'affichage des lignes mélangées par POKE #4FD,1.
Erreur: 'File type' si le programme n'est pas un programme BASIC.
DELETE
SYNTAXE: (!)DELETE Ligne1,Ligne2
Détruit sans perte des variables les lignes Ligne1 incluse à Ligne2 non incluse. Si Ligne2<Ligne1, le DOS rétablit l'ordre: DELETE 100,3000 <=> DELETE 3000,100.
SYNTAXE: (!)DELETE Ligne1
Détruit, sans perte des variables, la fin du programme, à partir de la Ligne1 incluse.
SYNTAXE: (!)DELETE ,Ligne2
Détruit sans perte des variables jusqu'à la Ligne2 non comprise.
Erreur: 'UNDEF'D STATEMENT'
NUM
SYNTAXE: (!)NUM
(!)NUM Origine
(!)NUM Origine,Pas
(!)NUM ,Pas
Précise les paramètres initiaux de la renumérotation automatique des lignes BASIC.
Un nouveau numéro est généré par la séquence 'Funct'+'Return'. Cette instruction n'a donc d'intérêt que sur Oric Atmos, l'Oric-1 ne disposant pas de touche de fonction.
ACCEPT
SYNTAXE:
(!)ACCEPT (@X;Y)(,&Code),Variable mode de sortie,Variable chaîne,Longueur(,option)
Cette instruction, d'abord assez complexe, permet de formater à volonté les entrées de texte sur l'écran.
Principe général: Une fenêtre de longueur précisée va être créée à l'écran, à l'intérieur de laquelle tous les déplacements avec les fléches de curseur sont autorisés (éditeur de type pleine page).
Explication des paramètres:
@X;Y :Positionner le début de la fenêtre en absolu, y compris en haute résolution.
,&Code :Préciser le code ASCII de remplissage de la fenêtre.
,Variable mode de sortie
:Selon l'option précisée, vous avez plusieurs modes de sortie de la fenêtre:
-par 'Return' :Variable=0
-par 'ESC' :Variable=1
-par 'curseur G' :Variable=2 (*)
-par 'curseur D' :Variable=3 (*)
-par 'curseur H' :Variable=4 (*)
-par 'curseur B' :Variable=5 (*)
(*) Ces modes de sortie ne sont pas toujours valides, voir options.
,Variable chaîne :Elle sera chargée avec la chaîne entrée (un peu comme pour un INPUT). Sa longueur, quel que soit le nombre de caractère entrés sera celle précisée par la variable longueur. Quel que soit le caractère 'de fond', la chaîne sera justifiée à droite par des espaces.
,Expression longueur :Elle définit la longueur de la fenêtre (1 à 255 caractères).
,Options :Elle peut ne pas être précisée, elle prend alors la valeur '0'.
Cette variable permet de définir:
-Si la fenêtre va être effacée, c'est à dire remplie avec le code ASCII courant (celui-ci n'a pas besoin d'être précisé chaque fois).
-Si on autorise ou non la sortie de la fenêtre par les touches de curseur ou seulement par 'ESC' et 'Return'.
Donc, quatre valeurs possibles: Effacer Sortie curseur Valeur
oui oui 0
non oui 1
oui non 2
non non 3
NB: 'ESC' peut être remplacé, pour les attributs vidéo, par 'CTRL/Z'. Ces attributs vidéo, contrairement à un INPUT ne seront pas détruits, mais remplacés par leur code+128: Ils apparaîtront correctement avec PRINT, mais en vidéo inverse lors d'un PLOT.
Exemple: ACCEPT @10;1,&ASC("-"),A,A$,10,2
Crée une fenêtre de 10 caractères, la remplit de '-'. Tapez TOTO puis 'ESC': A vaut 1, A$ vaut "TOTO ". Vous ne pouvez sortir que par 'Return' ou 'ESC'.
RESTORE
SYNTAXE: RESTORE
RESTORE Numéro de ligne
Place le pointeur de DATA au début du programme ou de la ligne précisée. Si une ligne est spécifiée, elle doit exister, mais il n'est pas indispensable qu'elle contienne des DATA.
Erreur: 'UNDEF'D STATEMENT'
SWAP
SYNTAXE: (!)SWAP Variable1,Variable2
Echange les deux variables.
Erreur: TYPE MISMATCH lorsque les variables ne sont pas du même type.
CODE
SYNTAXE: (!)CODE Nom de chaîne
Remplace la chaîne spécifiée par la même chaîne codée (reconnaissance des mots-clés BASIC).
A utiliser avec EXECUTE. Si une même chaîne doit être exécutée plusieurs fois, un seul codage est nécessaire.
Exemple: CODE A$
Erreur: 'String too long' si la chaîne à coder dépasse 77 caractères.
EXECUTE
SYNTAXE: (!)EXECUTE Chaîne
Exécution d'une chaîne, qui doit auparavant avoir été codée par CODE.
Toutes les instructions peuvent être exécutées, y compris test etc...
Exemple: 10 A$="PING":CODE A$
20 EXECUTE A$
Erreurs: 'String too long' si la chaîne dépasse 70 caractères.
'ILLEGAL DIRECT' si tentative d'exécution en mode direct.
ANGLE
SYNTAXE: (!)ANGLE Valeur
Instruction de type LOGO.
Cette instruction, ainsi que les deux qui suivent, permettent de créer des graphiques d'une façon différente d'avec les instructions CURSET et autres.
On donne au curseur un angle initial, grâce à l'instruction ANGLE. Ensuite, on déplace ce curseur d'un certain nombre de points dans la direction précisée, grâce à l'instruction LINE. L'instruction ROT permet de modifier cette direction de façon relative (par rapport à l'angle précédent).
LINE
SYNTAXE: (!)LINE nombre de point,code FB
Déplace le curseur du nombre de points spécifié, dans la direction courante, avec la couleur spécifiée.
Exemple: ANGLE 45:LINE 20,1
Trace une ligne de 20 points dans une direction de 45 degrés à partir de la position courante du curseur.
ROT
SYNTAXE: (!)ROT Angle
Ajoute à la direction courante du curseur LOGO la valeur de l'angle spécifié en degrés. Cette valeur peut être négative.
Exemple: 10 HIRES:SEI:ANGLE 0
20 CURSET 120,100,0
30 FOR I=0 TO 240
40 LINE I/2+10,1
50 ROT 91
60 NEXT:LINE 60,1
70 CLI
Essayez plusieurs valeurs d'angle à la ligne 50, cela vaut le détour!!!
BOX
SYNTAXE: (!)BOX Largeur,Hauteur,Code FB
Trace un rectangle de largeur et de hauteur spécifiées, dont le sommet haut-gauche est la position courante du curseur.
Exemple: 10 HIRES:SEI
20 FOR X=0 TO 5.9 STEP .05
30 CURSET X*33,X*10*SIN(4*X)+99,3
40 BOX 6*X+10,6*X+10,1
50 NEXT
60 CLI
ON OFF
SYNTAXE: !ON
(!)OFF
Ces instructions rendent facultatif ou obligatoire le '!' devant les commandes du DOS.
OFF peut, parfois, accélérer certains programmes.
Sur l'Atmos, en mode OFF, les mots du DOS accessibles par les touches de fonctions seront automatiquement précédés du '!'.
A l'initialisation, l'Oric est en mode ON: '!' facultatif.
Remarque: Les commandes ON, FORMAT et PRINTER doivent dans tous les cas être précédées d'un '!', car elles commencent par un mot clé du BASIC.
FUNC
SYNTAXE: (!)FUNC ON
(!)FUNC OFF
Autorise ou inhibe les touches de fonctions (effet sur Atmos seulement).
Si vous devez enlever le connecteur de bus, un FUNC OFF est obligatoire.
A l'initialisation, l'ordinateur autorise les touches de fonctions.
Utilisation des touches de fonctions:
Atmos: 'Funct'+'Touche' ou
'Funct'+'Shift'+'Touche'
Deux touches de fonction jouent un rôle spécial:
-'Funct'+'Return' Génère un numéro de ligne (voir NUM).
-'Funct'+'DEL' Agit comme un 'DEL' simple, mais n'efface pas le caractère: Très pratique pour l'édition.
De plus, vous disposez d'un utilitaire DKEY qui vous permettra de vous familiariser avec les touches de fonction, de modifier leur disposition etc...
Pour y accéder, tapez DKEY ou dkey.
PRINTER
SYNTAXE: !PRINTER ON
!PRINTER OFF
Cette instruction dirige toutes les impressions vers l'écran, y compris les PRINT etc...
Attention: Dès que l'Oric affiche 'Ready', il passe en mode PRINTER OFF. Donc, pour utiliser cette instruction en mode direct, il faut mettre plusieurs instructions par ligne.
Exemples: !PRINTER ON:DIR
!PRINTER ON: LIST <=> LLIST
RESET
Cette instruction simule l'appui sur le poussoir 'RESET' des disquettes.
Elle lui est totalement équivalente.
Déroulement d'une initialisation:
A la mise sous tension, vous devez obligatoirement utiliser la disquette 'master' XL DOS.
Tant que vous n'éteignez pas votre Oric, vous pourrez 'booter' avec des disquettes 'esclaves' créées avec la commande INIT.
A chaque initialisation, l'XL DOS charge, s'il existe, le fichier 'BOOTUP.COM'.
SEI CLI
SYNTAXE: (!)SEI
(!)CLI
L'Oric utilise environ 20 pour cent de son temps pour gérer le clavier. Ces instructions permettent d'inhiber (SEI) ou de re-autoriser (CLI) cette gestion, permettant ainsi un gain de temps de 20 pour cent dans l'exécution des programmes.
Remarque: Si à la suite d'un SEI, le clavier se trouve bloqué, l'appui sur le poussoir 'RESET' de l'Oric rendra la main.
FILE
SYNTAXE: (!)FILE NL
Précise le numéro de fichier qui sera pris si celui-ci n'est pas précisé.
Exemple: FILE 143
OPEN
Ouverture de fichier.
Direct: (!)OPEN "R",Nom de fichier,Longueur,NL
Chaîne: (!)OPEN "S",Longueur,NL
Disque: (!)OPEN "D",NL
Séquentiel: (!)OPEN "L",Nom de fichier,NL
Remarque: Les noms de fichiers ont des extensions spéciales, placées par l'XL DOS. Nom fichier a donc seulement 6 caractères utiles.
CLOSE
Fermeture des fichiers.
SYNTAXE: (!)CLOSE
Ferme tous les fichiers ouverts.
SYNTAXE: (!)CLOSE Type de fichier
Type: "S" ou "D" ou "L" ou "R".
Ferme tous les fichiers du type précisé.
SYNTAXE: (!)CLOSE NL
Ferme le fichier précisé.
NB: Ces deux dernières syntaxes peuvent être mixées à volonté.
Exemple: CLOSE 100,"D",12
Ferme tous les fichiers disque, les fichiers 100 et 12.
MSAVE / MLOAD
SYNTAXE: (!)MSAVE (#NL,)Nom du tableau
(!)MLOAD (#NL,)Nom du tableau
Sauvegarde et rappel de tableaux de chaînes ou de réels sur le disque.
Les fichiers ainsi créés sont exploitables de manière séquentielle.
Exemple: MSAVE AA$
MLOAD #4,I
Attention: Le tableau doit avoir été dimensionné. Si, lors d'un chargement, il se trouve sous dimensionné, il sera rempli, le reste du fichier n'étant pas chargé.
FSTART
SYNTAXE: (!)FSTART (#NL)
Place le pointeur du fichier séquentiel au début de celui-ci.
Exemple: FSTART 12
FJUMP
SYNTAXE: (!)FJUMP (#NL) nombre d'enregistrements
Saute le nombre d'enregistrements précisés sur le fichier spécifié.
Si le nombre est plus grand que le nombre d'enregistrements restants, le pointeur est positionné à la fin du fichier, sans générer d'erreur.
FEND
SYNTAXE: (!)FEND (#NL)
Place le pointeur de fichier séquentiel à la fin du fichier.
PUT
Direct: (!)PUT (#NL,)Numéro de la fiche
Ecrit le tampon dans l'enregistrement précisé.
Séquentiel: (!)PUT (#NL,)Liste de variables
Ecrit à la position courante du pointeur les variables.
Disque: (!)PUT (#NL,)Piste,Secteur,Lien piste,Lien secteur,Longueur utile
Ecrit le tampon sur le secteur précisé.
TAKE
Direct: (!)TAKE (#NL,)Numéro de fiche
Appel de la fiche dans le tampon du fichier considéré.
Séquentiel: (!)TAKE (#NL,)Liste de variables
Lit les variables considérées sur le fichier considéré.
Disque: (!)TAKE (#NL,)Piste,Secteur
Appelle dans le tampon le secteur précisé. Aucune vérification de l'existence du secteur n'est effectuée. Si le secteur n'existe pas, un FDERR=10 est généré.
FIELD
SYNTAXE: (!)FIELD (#NL,)Nom de champ TO Code(,Nom de champ TO Code)(,...)...
Définit les champs dans le tampon.
Le champ a 6 caractères significatifs et peut être un tableau à une dimension.
Code vaut: 0 :Pour un champ entier
255 :Pour un champ réel
1 à 254 :Pour un champ chaîne (soit la longueur de la chaîne)
Les champs sont séparés par des identificateurs de 1 octet, sauf pour les fichiers disques et chaînes. En tenir compte pour déterminer la longueur totale du champ.
LSET RSET
SYNTAXE: (!)LSET Nom de champ<Variable
(!)RSET Nom de champ<Variable
Permettent d'écrire dans les champs considérés. Totalement équivalentes pour les variables numériques. Les chaînes sont écrites en les justifiant à gauche (LSET) ou à droite (RSET).
Si la chaîne est plus courte que le champ, elle est complétée par des espaces.
Si la chaîne est plus longue que le champ, elle est tronquée à droite (LSET) ou à gauche (RSET).