CODINGCLASSEURS WEKA ★ CLASSEURS WEKA : Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

8/6.1 - Le lecteur de disquettes 5'1/4 Vortex en lecteur additionnelCoding Classeurs Weka

8/6 - Les mémoires de masse

8/6.1 - Le lecteur de disquettes 5'1/4 Vortex en lecteur additionnel

Qui n'a pas un jour, suite à une sauvegarde, été confronté à l'affreux message d'erreur « Disc Full » ?

Qui ne désire pas payer moins cher ses disquettes, et en consommer environ quatre fois moins ?
La solution est très certainement l'achat d'un lecteur additionnel. Un lecteur 5'1/4 vous permettra de limiter les dépenses en disquettes, puisque la capacité de stockage est supérieure.

Le lecteur de disquettes 5'1/4 Vortex allie l'économie au confort de sauvegarde ainsi qu'à une grande souplesse d'utilisation logicielle : en effet il est livré avec un ROM supplémentaire remplaçant la ROM-AMSDOS et possédant de nombreuses instructions nouvelles (possibilité de choisir son lecteur principal, possibilité de gérer simultanément jusqu'à 16 fichiers en accès direct, protection par mots de passe, protection lecture-écriture, possibilité de lancer CP/M de n'importe quel lecteur, utilisation de CP/M + en 708 k-octets, possibilité de formater directement sous basic...).

I.   Présentation

Le lecteur de disquettes Vortex se présente sous la forme d'un boîtier d'environ 30 cm sur 15 cm pour une hauteur de 4 cm, d'une conception robuste. Un câble plat avec un connecteur 2x17 broches vous permettra de l'installer sur votre CPC 664 ou 6128. Pour le CPC 464, une petite manipulation sera nécessaire pour le connecter au contrôleur de disquette DDI-1.
Une extension ROM accompagne le lecteur (3 versions selon le type de CPC que vous possédez) ; celle-ci se connectant sur le bus d'extension 2 x 25 broches du micro-ordinateur.
Il est, de plus, livré avec une disquette contenant des utilitaires (formatage, copie, augmentation de la rapidité d'affichage... ) fonctionnant sous CP/M, mais ne possédant pas les secteurs de « BOOT » (secteurs permettant fe démarrage de CP/M).
Plusieurs versions du lecteur existent :

Nous nous intéresserons plus particulièrement au lecteur F1-X, la version M1-X ne présentant pas de diffférence excepté le format des disquettes. La version RS-232 nous ayant posé quelques problèmes de compatibilité, notamment avec CP/M, nous ne l'aborderons pas.

II.   Installation

F1-X VERSION CPC-464

Munissez-vous d'un tournevis cruciforme et armez-vous d'un peu de patience et de beaucoup de soin.

Tout d'abord, démontez le boîtier contenant le module V-DOS par ses quatre vis de maintien.
Ensuite déconnectez votre contrôleur de disquette DDI-A du CPC-464 et enfichez le connecteur femelle 2 x 25 contacts dans la partie mâle réservée à cet effet dans le module V-DOS (petite plaque de circuit imprimé libre de composants).

Vous pouvez remonter le boîtier du module V-DOS en veillant à ne pas coincer les câbles plats (un passage est réservé).

Vous pouvez maintenant connecter le module V-DOS sur le bus d'extension du CPC-464 (le dessus est repéré, sinon prenez le fil rouge du connecteur plat pour référence de la broche 1).
Attention : toute manipulation devra être effectuée hors tension !
Il vous incombe maintenant de connecter les deux lecteurs de disquettes sur le module compact que vous avez maintenant : placer le connecteur du DDI-1 sur le premier connecteur et le connecteur du lecteur F1-X sur le deuxième.
Voilà, tout est prêt pour fonctionner. L'ordre de mise sous tension sera le suivant :

VERSION CPC-664 ET CPC-6128

Le montage pour ces deux types de CPC est extrêmement simple.
Il suffit de connecter le câble plat 2x17 broches du lecteur de disquettes 5' 1/4 sur le connecteur arrière de votre ordinateur dénommé « DISC DRIVE 2 .» On tâchera de bien repérer le sens de connection (repère pour le haut ou fil rouge pour la broche 11.
Le module V-DOS se connectera par l'intermédiaire du connecteur 2 x 25 broches sur le connecteur d'extension de votre Amstrad.

L'ordre de mise sous tension sera le suivant :

III.  Mise en place

Etudiez tout particulièrement ce paragraphe pour installer la disquette livrée avec votre lecteur de disquettes, car celle-ci n'est pas prête à l'emploi sous CP/M ; et vous n'en avez qu'une !
CP/M n'a pas été installé sur cette disquette car c'est un système d'exploitation créé par Digital Research, sur lequel il faut payer des droits. La disquette est donc formatée sous un format spécial qui réserve les deux premières pistes pour l'installation de CP/M (c'est l'équivalent du formatage de type Vendor proposé par les utilitaires de la disquette CP/M).

Procédez donc à l'installation dans l'ordre suivant, même si vous possédez un CPC-6128, il vous faudra d'abord créer une disquette CP/M 2.2 pour le lecteur Vortex.

INSTALLATION DE CP/M 2.2

Préparez d'abord une copie de votre disquette CP/M 2.2 sur le lecteur 3', à l'aide de DISCKIT2 par exemple.

Toute l'installation suivante s'effectue avec le module V-DOS et le lecteur Vortex installés.
Après avoir placé la copie dans le lecteur et effectué un RESET, frappez l'ordre ICPM.
Il faut maintenant préparer votre copie à fonctionner sous les capacités nouvellement disponibles par le lecteur Vortex.
CP/M doit donc être déplacé afin de pouvoir traiter les 128 enregistrements possibles dans le catalogue.

Ce déplacement s'effectue par la commande :

A>MOVCPM 178 *

CP/M est abaissé de 256 octets et le message suivant apparaît :

CONSTRUCTING 44K CP/M vers 2.2
READY FOR « SYSGEN » OR
« SAVE 34 CPM44.COM »

puis le prompt réapparaît (le prompt est le nom souvent utilisé pour nommer le symbole « A> » indiquant que CP/M vous rend la main).
A partir de ce moment, le nouveau CP/M est en RAM, il faut donc le sauvegarder sur disquette et de plus l'installer. On frappera donc :

A> SYSGEN *

s'affichera ensuite :

SYSGEN V2.0

Please insert DESTINATION dise into drive A then press any key :_

Vous frapperez alors < RETURN > puis répondrez « N » à la question :

Do you wish to reconfigure another dise (Y/N) ? :_

SYSGEN V2.0 finished

Le nouveau CP/M 2.2 est maintenant installé sur votre disquette 3".
Il reste à l'installer sur la disquette fournie avec le lecteur Vortex.
Effectuez une réinitialisation de votre lecteur de disquettes puis lancez maintenant la nouvelle version de CPM par la commande :

|CPM,1  < RETURN >

Vous constaterez la modification grâce au message de présentation suivant :

CP/M 2.2 - Amstrad Consumer Electronics pic
44 K CP/M vers. 2.2-03/86 vortex Gmbh
A>

Vortex est venu ajouter son « plus » et vous disposez maintenant d'une capacité de 708 k-octets sur le lecteur 5"l/4.

Placez la disquette livrée dans le lecteur 5'1/4.

Frappez maintenant :

A>B:
B>SYSGEN

Les réponses à apporter aux différents messages sont indiquées en souligné dans les opérations décrites ci-dessous :

Disquette-source dans le lecteur A ou B 7 A

Veuillez insérer la disquette-source dans le lecteur A puis appuyez sur ENTER             ;   ;
Disquette-destination dans le lecteur A ou B ? B
Veuillez insérer la disquette-destination dans le lecteur B puis appuyer sur ENTER

Une autre disquette O/N ? N

Insérez une disquette système dans le lecteur A puis appuyez sur ENTER
RETURN
B>

Voilà votre disquette CP/M 5'1/4 version Vortex prête à être utilisée. Il ne vous reste plus qu'à copier les fichiers utilitaires de CP/M 2.2 que vous désirez avoir sur cette disquette à l'aide de la commande PIP (se trouvant sur le lecteur A actuellement) :

B>A:PIP B:=A:XXXXXXXX.YYY

XXXXXXXX.YYY représente le nom du fichier que vous désirez copier sur la disquette Vortex.
NestinutiledecopierlesfichiersBOOTGEN.COM ; DISCKIT2.COM ; FOR-MAT.COM ; SETUP.COM ; SYSGEN.COM et tous les fichiers LOGO, ceux-ci ne fonctionnant pas depuis le lecteur Vortex.

N'ayez pas de regret pour DISCKIT2.COM et FILEC0PY.COM, car Vortex a placé sur la disquette deux utilitaires dénommés DISCT00L.COM et FILEC0PY.COM très performants.

Vous pouvez de suite essayer de lancer CP/M 2.2 à partir du lecteur Vortex. Pour cela, effectuez une ré-initiaiisation de votre ordinateur puis frappez ICPM,2.

CP/M 2.2 s'initialise depuis votre deuxième lecteur qui devient maintenant îe lecteur principal ou lecteur A – à ne pas oublier dès ce moment, surtout lors de copies de disquettes ou de formatage !! – le lecteur B étant alors le lecteur 3'.

INSTALLATION DE CP/M 3.0 ou CP/M+

Si vous possédez au moins 128 k-octets de mémoire vive, vous pouvez installer la version 3.0 de CP/M qui vous ouvre : la bibliothèque d'utilitaires professionnels tels que DBasell ou Multiplan.
Ré-initialisez votre ordinateur, placez une disquette vierge 5' 1 /4 dans le lecteur Vortex et formatez-la par ta commande Basic V-DOS : |FORMAT,2(voir page 10)

Insérez les deux disquettes précédentes dans les lecteurs (les versions CP/M 2.2 configurées plus haut) et lancez votre nouvelle version de CP/M par la commande ICPM,1
Après le prompt, frappez la commande

A>PIP A: = B:XPATCH30.COM

Remplacez la disquette 5'1/4 par la disquette vierge puis lancer la commande :

A>XPATCH30

Suivez les instructions telles que décrites ci-dessous : vous répondrez NON à la question Sauvegarde sur 3" (n souligné)

Vous voici maintenant en possession d'une disquette 5'1/4 sur laquelle vous pouvez effectuer les copies de vos logiciels fonctionnant sous CP/M +

Pensez tout de même à en effectuer des copies de sauvegarde auparavant.

xpatch30
*                                                      ;  *
*       CP/M 3.0 tVl.lF-Xî PROGRAMME-MASTER                    ;   ;*
*             ;1986  vortex GmbH                                             ;  *
*                                                      ;  *
(XPATCH30 modifie le fichier CF/M+ '.EKS' pour le rendre compatible avec votre lecteur–X)
Insères une copie de la disquette 3" CP/M + dans le lecteur 3" puis appuyez sur ENTER
Chargement du fichier C10CPM3.EMS... Sauvegarde sur 3"  Ecriture du secteur-boot...
5.25"/3.5" disquette-master CP/M Plus-X fut créée
Vous avez   actuellement 3 possibilités de lancer CP/M plus:
(1)    Disquette CP/M plus master dans le lecteur 3": Lancer CP/M a partir du lecteur 3" par ùCPM. Lecteur B sera considere comme un simple face 40 pistes avec 64 enregistrements dans le directory. Attention: Ne jamais utiliser une disquette écrite sous --------- VDOS ou un CP/M pouvant être appelé par CPM,1 ou CPM,2.
(2)    CP/M plus modifie dans le lecteur 3": ÙCPM ou ÙCPM,1 lance le CP/M a partir du lecteur 3".
Configuration: lecteur A=3", lecteur B=5.25" ou 3.5" avec 70BkO et 128 enregistrements dans le directory.
(3)    ÙCPM,2 lance le CP/M plus a partir du
lecteur 5.25" ou 3.5". Configuration: lecteur A=5.25" ou 3.5" avec 70BkO et 128 enregistrements dans le directory; lecteur B=3".
Inserez ia disquette CF/M 2.2 avec XPATCH30 dans le lecteur 3" puis appuyez sur ENTER.

IV.   Utilitaires Vortex sous CP/M

  • DISCTOOL.COM : Cet utilitaire ne fonctionnant que sous CP/M 2.2 vous permettra de formater, d'effectuer des copies de disquettes, ou créer des disquettes systèmes. Il allie même la souplesse d'utilisation en proposant de se servir du lecteur 3' en tant qu'unité temporaire pour éviter les multiples manipulations de disquettes.
  • FILECOPY.COM : Cet utilitaire permet d'effectuer des copies de fichiers en les sélectionnant directement dans le catalogue. Ces copies peuvent être effectuées d'un lecteur vers l'autre, ou sur un même lecteur sans provoquer d'erreurs, même entre zones USERs. Cet utilitaire ne fonctionne aussi que sous CP/M 2.2.

Les présentations de ces deux utilitaires permettent une manipulation aisée et sont de plus très conviviaux, ce qui permet d'éviter les erreurs.

  • FAST.COM : Cet utilitaire n'est utilisable lui aussi que sous CP/M 2.2 (et c'est bien dommage I). Il permet de pratiquement doubler la vitesse d'affichage à l'écran et est compatible avec le fenêtrage. Mais gare aux graphismes, vous pourrez avoir quelques surprises d'affichage.
  • INSTALL.COM : Cet utilitaire vous permettra d'ajuster tous les paramètres de CP/M tors du « BOOT ».

Il est documenté en menus pour en faciliter l'utilisation, mais une sérieuse connaissance de CP/M vous sera nécessaire pour en connaître toutes les applications.

  • CASCOPY.COM : Vous pourrez effectuer très facilement vos copies de cassettes à disquettes et inversement grâce à cet utilitaire.
  • XMON.COM : Amateurs de langage machine, voici un utilitaire quivous conviendra certainement si vous êtes passionnés par la progammation au plus près du coeur de votre ordinateur.
  • P22.COM et P30.COM : Ces deux logiciels permettront de modifier les paramètres de vitesses d'accès des lecteurs de disquettes pour les adapter respectivement sous CP/M 2.2 et CP/M + . Nous n'en avons pas encore eu l'utilité, nos logiciels fonctionnant pour l'instant sans problème avec le lecteur Vortex.

LA DOCUMENTATION

Le lecteur est livré avec une documentation très fournie, notamment sur les particularités de CP/M. Un seul regret : la traduction est parfois un peu difficile à comprendre, mais les initiés y trouveront tout de même de quoi passer d'agréables soirées...

V.   Le Basic V-DOS

Le lecteur Vortex est livré avec un boîtier d'extension permettant de le « piloter », assurant notamment la gestion des 80 pistes de la disquette 5'1/4 (à cet usage, nous vous recommandons d'utiliser des disquettes double densité 96 TPJ).

Mais ce petit boîtier possède une trentaine d'instructions de type RSX utilisables sous Basic.
La ROM contenue dans ce boîtier est une ROM venant remplacer la ROM de l'AMSDOS. On y retrouve des instructions AMSDOS telles quelles, certaines ayant la même fonction mais dont le nom a changé, et une vingtaine d'instructions supplémentaires.
Remarque : Dès lors que vous ne connectez pas l'extension V-DOS le lecteur Vortex se comporte comme un simple lecteur 5'1/4 de capacité maximale 178 k-octets. Les fichiers ne seront par contre concentres que sur la moitié de la disquette, ce qui implique l'utilisation de disquettes double densité tout de même pour une sauvegarde fiable.

LES COMMANDES AMSDOS

Voici la liste des commandes dont la syntaxe n'a pas été modifiée par la ROM V-DOS et dont la fonction reste la même :

|CPM                  ; Accès à CPM sur lecteur 3'
|DISC                ;  Affectation par défaut du lecteur de disquettes en lecture/écriture
|DISC.IN             ;Affectation du lecteur de disquettes en lecture
|DISC.OUT        Affectation du lecteur de disquettes en écriture
|A                        ; Le lecteur A est le lecteur par défaut
|B                        ; Le lecteur B est le lecteur par défaut
|ERA                  ;  Effacement d'un fichier sur la disquette
|REN                  ;  Modification du nom d'un fichier
|DIR                 ;   ;Catalogue d'une disquette ou cassette

LES COMMANDES RENOMMEES

Certaines commandes de l'AMSDOS ont été renommées :

  • |CAS : Remplace la commande ITAPE qui définit le lecteur de cassette comme étant l'unité par défaut
  • |CAS.IN : Remplace |TAPE.IN qui affecte le lecteur de cassette en lecture
  • |CAS.OUT : Remplace |TAPE.OUT qui affecte le lecteur de cassette en écriture
  • |SELECT : Remplace l'instruction IUSER qui définit le numéro de la zone utilisée. Cette fois-ci, il y a une légère modification supplémentaire : on écrira |SELECT,« 1 » pour sélectionner la zone utilisateur N° 1  (au lieu de |USER, 1).

Le nombre de zones est toujours fixé à 16 (de 0 à 15). Il est possible d'utiliser ISELECT,« B5 », pour sélectionner la zone 5 sur le dise B. Si vous utilisez cette commande à l'aide d'une variable, vous devrez affecter le caractère @ (a commercial) à la variable : ISELECT,@a$ avec a$=« A3 » par exemple.

  • |CPM : La fonction |CPM a été légèrement modifiée pour permettre le passage à CP/M sur n'importe quel lecteur et en version 708 k-octets (voir paragraphe sur les utilitaires). |CPM,1 appel le CP/M se trouvant sur le lecteur 3', celui-ci étant le lecteur A ; et |CPM,2 charge CP/M à partir du lecteur Vortex qui devient le lecteur A par défaut.

LES NOUVELLES COMMANDES

  • |X : Cette commande vous permet d'inverser à volonté les lecteurs A et B par défaut. Si lecteur A est le lecteur 3' ; après la commande IX, il deviendra le lecteur B tandis que le lecteur Vortex deviendra le lecteur A. IX une nouvelle fois rétabli l'ordre à l'initialisation.
  • |FORMAT : Cette commande vous permet de formater directement sous Basic une
  • disquette.
  • |FORMAT, 1 : vous formatera une disquette du lecteur A
  • |FORMAT,2 : vous formatera une disquette sur le lecteur B.

Lorsque vous formaterez sur le lecteur 3', il vous sera demandé le type de formatage désiré (Système ou Data), et la disquette sera formatée en 40 pistes 9 secteurs.
Lorsque vous formaterez sur le lecteur Vortex, la disquette 5'1/4 sera formatée en 80 pistes 9 secteurs et double face.

Dans tous les cas, assurez-vous que vous êtes sur le bon lecteur suite à la commande IX.

  • |ATTRIBUT : Cette commande est similaire à la commande STAT de CP/M en attribuant aux fichiers les attributs suivants :
  • |ATTRIBUT, « FICHIER.EXT »,« S » : le   fichier   est   considéré comme fichier Système et ne sera pas visible au catalogue.
  • |ATTRIBUT, « FICHIER.EXT », « D » : annule la commande précédente, le fichier est de nouveau visible au catalogue.
  • |ATTRIBUT, « FICHIER.EXT », « W » : Le fichier est affecté de l'attribut R/W (READ/WRITE), c'est-à-dire qu'il peut être lu et effacé.
  • |ATTRIBUT, « FICHIER.EXT », « R » : Le fichier est affecté de l'attribut R/O (READ ONLY), il est protégé en écriture donc ineffaçable ou modifiable.
  • |CODE : Cette commande vous permet d'installer une clé d'accès à 65536 combinaisons sur un programme que vous désirez protéger. Ce code est un nombre de 5 chiffres signé ou non compris entre - 32768 et + 32767.

Le format de la commande est le suivant :

  • |CODE, 12345
    save « PROGRAMMAS »,P
    Votre programme est ainsi protégé avec le code 12345. Après une réinitialisation, il vous sera impossible de l'utiliser si vous ne refrappez pas la commande code suivie de votre nombre.
  • |RESET : Cette commande vous permet de changer la disquette de votre lecteur au cas où vous auriez ouvert des fichiers sur celle-ci. Elle ferme tous les fichiers et vous évite ainsi de perdre des données sur des fichiers ouverts en écriture. Nous ne saurions trop vous conseiller de prendre l'habitude de l'utiliser dans les programmes demandant un changement de disquette.
  • |DERROR : Cette commande permet d'éviter un arrêt du programme Basic dans le cas où une erreur surviendrait. Trois syntaxe existent :
    • |DERROR,0 : active la commande qui n'affiche ainsi plus les messages d'erreurs et continue le traitement du programme Basic en cours.
    • |DERROR, 1 : désactive la commande, le programme s'arrêtera en cas d'erreur et celle-ci sera affichée.
    • |DERROR : sans paramètre, crée une variable DERR qui contiendra le code d'erreur qui s'est produit pour un traitement ultérieur.

Les principaux codes d'erreurs sont les suivants :
10  : disquette changée sans fermeture du fichier en cours
14  : fichier non ouvert
15  : fin du fichier atteint
17  : imprimante non connectée
21  : disquette pleine
22  : directory plein
23  : fichier non présent sur la disquette
24  : fichier impossible à renommer, déjà existant
25  : fichier uniquement en lecture 33 : erreur de syntaxe
39  : champ trop long
40  : champ non défini
41  : champ non divisé
42  : canal déjà ouvert
43  : canal non ouvert
44  : numéro de canal erroné
45  : numéro d'enregistrement trop grand 53 : canal non défini
55 : enregistrement vide

  • |ROMS : Cette commande vous donne la liste des ROMs connectées à votre CPC, ainsi que leur numéro et leur nom.
  • |ROMOFF : Vous pouvez, si vous le désirez, déconnecter tout ou partie de vos ROMs à l'aide de cette commande.
  • |ROMOFF,1 : déconnecte la ROM N° 1
  • |ROMOFF : seul déconnecte toutes les ROMs
  • |AMSDOS : Cette commande vous permet de retourner au système d'exploitation AMSDOS. Le lecteur X redevient un lecteur simple 40 pistes.

Attention : les commandes |ROMOFF et |AMSDOS vous font perdre toutes les données en mémoire centrale !

LES FICHIERS A ACCES DIRECT

Rappelons ce qu'est un fichier séquentiel.

Lorsque vous utilisez le Basic livré avec votre Amstrad vous pouvez gérer des fichiers grâce aux instructions OPENOUT, OPENIN, INPUT #9, PR1NT #9, UNE INPUT #9, WRITE #9, PRINT #9, CLOSEIN ET CLOSEOUT. Ces fichiers sont appelés fichiers séquentiels car les données y sont rangées dans l'ordre et la lecture d'une donnée placée en n-ième position ne peut se faire qu'en ayant lu les n-1 données placées avant. De même pour modifier le fichier, vous devez lire tout le fichier, modifier la donnée et réenregistrer le fichier.

Sur des fichiers de petite taille, pas de problème, mais si vous vous lancez dans la gestion d'un fichier de taille très importante, alors vous risquez de perdre patience, et surtout de la mémoire.
Les fichiers à accès direct, (appelés aussi relatifs ou aléatoires}, vous permettront de surmonter ce problème.

Vortex a même prévu la possibilité d'ouvrir en même temps 16 fichiers à accès direct, aussi bien en écriture qu'en lecture.

Une restriction est à appliquer à ce type de fichiers, vous ne pouvez enregistrer que des chaînes de caractères, mais les instructions STR$ et VAL vous permettront un passage aisé aux valeurs numériques écrites ou lues.

Voyons maintenant comment organiser un fichier à accès direct, que nous appliquerons à une mini-gestion de stocks.

Vous devez d'abord définir la structure de vos enregistrements, c'est-à-dire le nom des variables qui seront stockées ainsi que leur contenu maximal en caractères.

Par exemple :

  • Article : 20 caractères –> ART$
  • Référence : 7 caractères –> REF$
  • Quantité : 5 caractères –> QUA$
  • Prix H.T. : 5 caractères –> PRI$
  • TOTAL : 37 caractères

Les variables ainsi définies devront avant toute utilisation être définies en mémoire pour leur réserver la place par ce type d'instruction :

10 ART$ = "":REF$ = "";QUA$ = "":PRJ$ = ""

Voyons maintenant les instructions utilisables et leur application dans notre exemple.

  • |FILES : Cette instruction permet de réserver une ou plusieurs zones de travail en mémoire pour le stockage temporaire des enregistrements, que l'on appellera a buffers d'enregistrement ».
    Chacun de ces buffers portera un numéro que l'on appellera canal (souvenez-vous que l'on peut ouvrir jusqu'à 16 fichiers).

La syntaxe est la suivante :

  • |FILES,canalx,taillex,canalz,taillez,canalc,...
    canalx sera un numéro de canal compris entre 0 et 127 et taillex dépendra de votre fichier ainsi que de la mémoire disponible.

Pour notre exemple nous pourrons écrire :

  • |FILES,1,37 : notre fichier sera ouvert sur le canal 1  et comportera 37 caractères maximum.

Précisons que toute nouvelle commande |FILES annule la précédente et qu'elle doit s'effectuer une fois tous les fichiers fermés.

  • |OPEN : Nous pouvons ensuite ouvrir les fichiers à utiliser par la commande |OPEN,"FICHIER.REL",long,canal.
    FICHIER.REL est le nom de notre fichier.
    long est la longueur du plus grand des enregistrements qui doit être inférieure ou égale à la longueur maximale définie précédemment.
    canal est le numéro de canal sur lequel nous ouvrons notre fichier.

Dans notre exemple :

  • |OPEN,"GESTION.REL",37,1
  • |FIELD: Il nous faut maintenant diviser notre fichier en zones appelées champs, dans lesquelles seront enregistrées ou lues les différentes variables, ceci grâce à l'instruction :
    • |FIELD,canal,longvar1,longvar2,longvar3...
      canal est le canal sur lequel le fichier a été ouvert longvarx est la longueur maximale de chacune des variables utilisées pour le traitement du fichier,
    • Pour notre exemple :
    • |FIELD,1,20,7,5,5
  • |PUT                                      ;   ;Cette instruction permet de sauvegarder un champ de données dans un fichier à accès direct.

La syntaxe est la suivante :

  • |PUT.canal,place, @var1$, @var2$, @var3$...
    canal est le numéro du canal sur lequel a été ouvert le fichier.
    place est appelée numéro d'enregistrement, c'est l'endroit où l'on va ranger les données.
    var1 $,var2$... sont les noms des différentes variables qu'il faut sauvegarder dans le champ précédemment défini,
    Il est possible de ranger des chaînes de caractères directement avec cette commande.
  • |PUT.canal,place,« chainel »,« chaine2 »,...
    Dans notre exemple, nous aurons :
    • |PUT,1,5,@ART$,@REF$,@QUA$,@PRI$
      pour ranger dans l'enregistrement N° 5 un article, sa référence, la quantité en stock et son prix.
  • |GET : Cette commande vous permettra de relire les données sauvegardées préalablement dans un fichier à accès direct, en accédant directement à un numéro d'enregistrement.

La syntaxe est :

  • |GET, canal, place, @var1$,@var2$,@var3$,...

On se reportera au paragraphe précédent pour la définition des paramètres.
Les différentes variables devront obligatoirement avoir été définies précédemment par une instruction du type :

var1 $ = "":var2$ = "":var3$ = "":...

car l'instruction utilise l'adresse de la variable dans sa routine de traitement (ce qu'indique le caractère @).

Pour notre programme nous aurons par exemple :

  • |GET,1,89,@ART$,@REF$,@QUA$,@PRI$

si nous voulons relire les différentes caractéristiques du 89-ième article.

  • |CLOSE : Lorsqu'un fichier n'est plus en prévision d'utilisation, vous pouvez fermer le canal qui lui a été affecté par l'instruction :
  • |CLOSE,N° de canal

PROPOSITIONS DE PROGRAMMES D'APPLICATIONS

Les programmes que nous vous présentons sont volontairement succincts, ce ne sont que des ébauches que vous pourriez développer plus en détail, mais qui vous permettront de vous faire un petite idée de la puissance des fichiers à accès direct.

De plus, grâce à ce type de fichiers, vous n'êtes plus limités par la mémoire de votre machine, seuls quelques centaines d'octets vous permettront de mettre à jour, de trier, lire et imprimer,... etc., des fichiers qui pourront contenir plusieurs dizaines, voir centaines, de k-octets de données ; la limite étant la capacité de votre disquette (708 k-octets ! ! ) et le nombre d'enregistrements (65535 !).

Gestion de stock
Voici un exemple d'enregistrement de fiches concernant des articles, ainsi que le programme de relecture associé. Vous pourrez améliorer ces programmes en développant une présentation appropriée à la gestion. Les deux programmes pourront être fusionnés et des procédures de calculs y être ajoutées (attention à la numérotation des lignes).


Pour terminer l'entrée des articles, frappez « fin » à la place du nom d'un article.

Tri sur fichier

Nous n'allons pas développer les différentes méthodes de tri, mais juste en appliquer une sur un fichier à accès direct.

Nous utiliserons le « tri à bulles », appelé ainsi car il s'agit de faire remonter les éléments les plus légers (nous choisirons un tri par ordre croissant, qui devra donc faire remonter la plus petite valeur du fichier).

Considérons un fichier de plusieurs nombres à trier, appelé « NOMBRES.REL ».
Nous devrons lire les valeurs deux à deux (une valeur et la suivante) ; les comparer ; si la première est supérieure, il faudra les permuter ; ainsi de suite jusqu'à ce que le fichier soit complètement trié.
On remarquera tout de même que le tri n'est pas très rapide mais il existe d'autres méthodes. L'avantage est de ne pas charger le fichier entièrement en mémoire centrale.
Vous pourrez tester le programme de tri en lançant ce programme qui génère aléatoirement un certain nombre de variables numériques. On remarquera que les variables sont transformées en chaîne de caractères avant sauvegarde.

Le programme de tri

Répertoire téléphonique

Nous n'allons pas développer entièrement le programme de répertoire
téléphonique, mais décrire la façon de créer votre répertoire et de le gérer.

D'abord, il nous faut définir les différentes données composant ce
répertoire :

Nous aurons besoin d'enregistrer pour chaque personne inscrite, son
nom, son prénom, son adresse, la ville, le code postal, et le numéro de
téléphone. Il faut étudier le nombre d'octets que nous allons réserver,
et les noms des variables :

nom                     ; : NOM$         ;15 octets

prénom               ; : ADR$          25 octets

ville                     ;  : VIL$           ; 15 octets

code postal         ;: COD$           ; 5 octets

téléphone           ; : TEL$           ;10 octets (pour les indicatifs)

Le fichier à ouvrir pourra s'appeler « REPERT.REL ».

Il serait peut-être intéressant de créer un fichier séquentiel contenant le nombre de personnes inscrites au répertoire, et si la mémoire ne vous manque pas, vous pourriez inscrire les noms et numéro d'enregistrement des inscrits afin d'augmenter ta vitesse de recherche.

Le programme pourra aussi contenir une routine de tri en ordre alphabétique de vos correspondants potentiels.

Ce tri s'effectuera sur les noms et prénoms, vous devrez comparer une à une les lettres grâce à leur code ASCII, si deux lettres sont idendiques, il vous faudra passer à la suivante et ainsi de suite jusqu'au prénom. Pensez à transformer toutes les chaînes de caractères en majuscule ou minuscule, car une différence de 32 sépare la valeur ASCII d'un caractère majuscule et celle d'une minuscule.

Remarques : en effectuant un catalogue de votre disquette 5' 1/4, vous vous apercevrez que les fichiers ont une taille exprimée en multiples de 4, et au minimum 4 k-octets ; ceci est dû au fait que le module Vortex travaille avec des blocs supérieurs à ceux de l'AMSDOS.

Le catalogue par contre peut contenir jusqu'à 128 fichiers.

VI. Le moniteur V-DOS

Ce moniteur est accessible directement à partir du Basic en frappant l'instruction |XMON et lorsque vous serez sous XMON, l'AMSTRAD vous le signalera par le prompt « * ».

A ce moment, deux possibilités s'offrent à vous :

  • travailler sous moniteur mémoire
  • travailler sous moniteur disquette.

LE MONITEUR MÉMOIRE

Cette partie de la description s'adresse aux fanatiques de la programmation en langage machine.

L'étude du langage machine dépasse l'objet de ce chapitre, aussi vous ne trouverez ci-dessous que la liste des commandes et leur signification.

A : permet d'entrer une chaîne de caractères.

Exemple :

  • A3000 puis chaîne de caractères à partir de l'adresse &3000 (hexadécimal).
  • B : montre les points d'arrêt (Break Point) et permet de les modifier.
  • Cadrasse : xy permet de rechercher une séquence
  • Dadressesdébut,adressefin : permet de lister une zone mémoire comprise entre les adresses de début et de fin ainsi que le codage ASCII s'il est exécutable
  • Fadressedébut,adressefin,valeur : permet de remplir une zone mémoire avec une valeur
  • Gadresse : lance l'exécution d'un programme en code machine à partir de l'adresse
  • |programme.bin : charge un programme en mémoire et vous indique l'adresse de chargement, la longueur et l'adresse de lancement
  • Ladressedebut,adressefin : désassemble une partie de la mémoire
  • Madressdébut, adressefin, adressearrivée : déplace une partie de la mémoire.
  • Opogrammebin.,adressedebut,longueur,adresselancement : sauvegarde une partie de la mémoire
  • P : agit comme CTRL P de CP/M en permettant l'impression sur imprimante
  • R : montre les registres et permet de les modifier
  • Sadresse : montre et permet de modifier le contenu de la mémoire. Presser pour quitter cette possibilité.
  • Tadresse,nombre : permet d'exécuter un programme en langage machine au pas à pas
  • X : charge ou ne vide le firmware dans la zone &000-&3FFF
  • Y : sélectionne des extensions ROM

On quittera le moniteur mémoire par la frappe le < ESC > qui vous ramènera au basic.

LE MONITEUR DISQUETTE

Vous pouvez accéder à un intéressant moniteur disquette en frappant la commande @ (a commercial) à partir du moniteur mémoire.

Dans ce moniteur, voici les commandes auxquelles vous pouvez accéder :

  • L:xx : permet de changer le lecteur actif
  • S :xx : permt de se déplacer sur les secteurs (de&41 à &49 sur le lecteur 3'; de &01 à &09 sur 5'1/4)
  • T:xx : permet de changer de piste (« track ») de &00 à &27 sur le 3' ; de &01 à &9F sur le 5'1/4
  • B :adresse : sélectionne l'adresse du buffer
  • R : effecue la lecture de la zone désignée
  • W : écrit le contenu du buffer dans la zone disquette
  • Cadresse : permet de modifier adresse : permet une chaîne de caractères
  • P : fonctionne comme pour le moniteur mémoire
  • Dadresse : effectue un « Dump » du contenu du buffer

Pour retourner au moniteur mémoire, il suffit de frapper

Voici un exemple d'utilisation de ce moniteur.

Page précédente : 8/6 - Les mémoires de masse

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 120 millisecondes et consultée 1230 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.