CPC 6128 - Ordinateur personnel AMSTRAD - Notice d'utilisation et mode d'emploi gratuit
Retrouvez gratuitement la notice de l'appareil CPC 6128 AMSTRAD au format PDF.
| Type de produit | Ordinateur personnel |
| Marque | AMSTRAD |
| Modèle | CPC 6128 |
| Alimentation | 220 V CA, 50 Hz |
| Mémoire vive | 128 Ko (64 Ko standard + 64 Ko supplémentaire) |
| Processeur | Z80 |
| Système d'exploitation | CP/M Plus (CP/M 3.1) et AMSDOS |
| Langage intégré | BASIC 1.1 |
| Modes d'affichage | Mode 0 (20 colonnes), Mode 1 (40 colonnes), Mode 2 (80 colonnes) |
| Couleurs | 27 couleurs disponibles, jusqu'à 16 simultanées en Mode 0 |
| Son | 3 canaux, sortie stéréo via prise jack 3,5 mm |
| Lecteur de disquettes | Intégré, format 3 pouces, capacité 180 Ko par face |
| Connecteurs | Moniteur (DIN 6 broches), péritel (via MP2), imprimante Centronics, manettes de jeu, lecteur de cassettes, unité de disquette supplémentaire, expansion |
| Clavier | AZERTY avec pavé numérique et touches de fonction |
| Entretien et nettoyage | Débrancher avant nettoyage, éviter l'humidité et la poussière, ne pas obstruer les orifices de ventilation |
| Sécurité | Ne pas ouvrir le boîtier, faire appel à un technicien agréé pour toute réparation |
| Pièces détachées et réparabilité | Réparations uniquement par des revendeurs AMSOFT agréés |
FOIRE AUX QUESTIONS - CPC 6128 AMSTRAD
Questions des utilisateurs sur CPC 6128 AMSTRAD
0 question sur cet appareil. Repondez a celles que vous connaissez ou posez la votre.
Poser une nouvelle question sur cet appareil
Téléchargez la notice de votre Ordinateur personnel au format PDF gratuitement ! Retrouvez votre notice CPC 6128 - AMSTRAD et reprennez votre appareil électronique en main. Sur cette page sont publiés tous les documents nécessaires à l'utilisation de votre appareil CPC 6128 de la marque AMSTRAD.
MODE D'EMPLOI CPC 6128 AMSTRAD
Une progression logique
Encouragés par l'immense succès des systèmes AMSTRAD CPC464 et CPC664 et mûs par la même impulsion novatrice, nous sommes fiers de vous présenter le CPC6128.
Fidèle à notre concept de compatibilité, le CPC6128 fonctionne avec les logiciels de ses deux prédécesseurs et dispose en outre d'une RAM supplémentaire de 64Ko pour exploitation du système CP/M et autres applications utilisateur.
CP/MPLus
Le système CP/M Plus, appelé également CP/M 3.1, offre une grande facilité d'accès à la bibliothèque des logiciels CP/M80. Les 61Ko de TPA (Transient Program Array ou « tableau de programme transitoire ») fournissant à tous les programmes CP/M80 une vaste capacité d'exploitation et tout l'espace requis pour le stockage des données. Bien que compatibles entre elles, les versions CP/M Plus et CP/M 2.2 sont toutes deux disponibles pour vous permettre d'exploiter sans modification les applications développées avec le système CP/M 2.2.
La plupart des logiciels CP/M 2.2 peuvent bénéficier des nombreuses améliorations du CP/MPlus, sans risque de conflit. La fonction d'émulation des terminaux intégrée au CP/M Plus permet d'installer directement des logiciels configurés pour l'exploitation d'écrans aux caractéristiques analogues à celles des terminaux VT52 et Zénith Z19/Z29.
Grâce au système d'extension graphique GSX fourni avec le CP/M Plus, les programmes d'application peuvent adresser imprimantes, tables traçantes et écrans utilisant des instructions standard; la notion de portabilité des programmes CP/M est ainsi élargie au-delà des seuls écrans de texte. Il est possible, en outre, d'interfacer les logiciels bénéficiant du GSX avec un grand nombre d'imprimantes, pour obtenir des copies sur papier de graphiques, diagrammes, etc.
Tandis que LOGO de Digital Research poursuit ses investigations dans le monde de l'enseignement assisté par ordinateur, la capacité accrue du 6128 permet d'étendre le logiciel Dr. LOGO, utilisé précédemment sous CP/M 2.2. Et, bien entendu, les programmes écrits sous CP/M 2.2 jouissent d'une compatibilité ascendante.
Les disquettes
Les disquettes Avec son système de disquettes intégré, le CPC664 a ouvert la voie du futur; le CPC6128 reprend le flambeau: offrant à une clientèle de plus en plus exigeante une informatique à disquettes pour un prix abordable, il réconcilie enfin les performances de l'informatique personnelle avec les coûts des ordinateurs individuels. Les disquettes de tous les systèmes AMSTRAD sont interchangeables, mais les programmes bénéficiant des améliorations du CP/MPlus et du système GSX ne tournent pas, on s'en doute, sur les systèmes dépourvus de ces avantages.
vus de ces avantages. Derrière le CPC6128 s'inscrit, en fait, l'un des noms les plus prestigieux de l'informatique Britannique. Par ailleurs, le club des utilisateurs AMSTRAD et son mensuel jouissent d'une solide réputation pour la qualité et la primeur des informations qu'ils diffusent.
Les logiciels
Les logiciels Le CPC6128 accepte tous les logiciels sur disquette des CPC664 et CPC464/DDI1 et la quasi-totalité des logiciels sur cassette du CPC464 (si un lecteur de cassette lui est racordé, bien sûr). Il offre ainsi à l'utilisateur un choix fantastique de logiciels immédiatement disponibles, issus de la gamme étendue d'AMSOFT, et de produits existant sur le marché.
Un département de
Tout commentaire ou suggestion concernant ce produit ou son manuel sera bienvenu...
Ni l'information contenue aux présentes, ni le produit décrit dans ce manuel, ne peuvent être modifiés ou reproduits totalement ou partiellement, en tout ou partie, et sous quelle que forme que ce soit, sans l'accord exprès préalable dAMSTRAD SARL.
AMSOFT et AMSTRAD accepteront volontiers vos suggestions à propos de l'ordinaire ou de ce guide
Toute correspondance doit être adressée à :
92310 Sevres
Toute maintenance et service après-vente concernant le produit doit être effectuée obligatoirement par des revendeurs AMSOFT agréés. Ni Amsoft, ni Amstrad ne seront responsables, de quelque façon que ce soit, de toute perte ou dommage causé par une maintenance ou service effectué par des personnes non agréées.
Ce guide est seulement destiné à faciliter l'utilisation du produit par le lecteur et, par conséquent, ni Amsoft, ni Amstrad ne seront responsables de toute perte ou dommage quelconque qui pourrait résulter de l'utilisation de toutes informations, renseignements, erreurs ou omissions contenus dans ce guide ainsi que de toute utilisation impropre du produit.
Il est recommandé de joindre le talon d'enregistrement de Digital Research.
Dr. LOGO et CP/M sont des marques déposées de Digital Research Inc.
Z80 est une marque déposée de Zilog Inc.
IBM et IBM PC sont des marques déposées de International Business Machines Inc.
Z19, Z29 et H89 sont des marques déposées de Zenith Data Systems Inc.
VT52 est une marque déposée de Digital Equipment Corp.
AMSDOS, CPC6128, CPC664 et CPC464 sont des marques déposées
de AMSTRAD Consumer Electronics plc.
Composé par Ivor Spital
Auteurs: Roland Perry, Ivor Spital, William Poel, Cliff Lawson, avec accord de Locomotive Software Ltd.
AMSTRAD est une marque déposée de AMSTRAD Consumer Electronics plc.
L'emploi de la marque ou du nom AMSTRAD sans autorisation préalable est strictement interdit.
Publié par AMSOF-T
Traduit et adapté par le Groupe KUJAWSK1 et l'équipe d'AMSOFT, France.
Remarques relatives à l'installation
- Suivez les instructions dans la partie 1 du Cours Élémentaire et utilisez une prise à 3 broches pour le raccordement au secteur.
- Ne tentez jamais de brancher le système sur une autre tension que 220 VCA, 50 Hz.
- Aucune pièce du système n'étant dépannable par l'utilisateur, il est superflu et peu recommandé de chercher à y accéder. Pour le dépannage, faites toujours appel à un technicien qualifié.
- Pour plus de confort visuel, éloignez le moniteur le plus possible du clavier et réglez la luminosité de l'écran en fonction de l'éclairage de la pièce. La commande de brillance du moniteur doit être réglée sur le niveau le plus faible possible.
- L'ordinateur doit se couvrir en face du moniteur et le plus loin possible de ce dernier. Pour une fiabilité maximale, placez l'unité de disque à droite de l'écran. Évitez d'installer l'ordinateur à proximité d'une source d'interférences.
- Veillez à éloigner les disques et les unités de disque des champs magnétiques.
- Si vous disposez d'une deuxième unité de disque, séparez le câble plat d'interconnexion de l'unité du câble d'alimentation secteur.
- Veillez à dégager les orifices de ventilation du système.
- Évitez d'entreposer votre matériel dans des endroits trop chauds, froids, humides ou générateurs de poussière.
Remarques relatives au fonctionnement
(Ne vous inquiétez pas si les termes techniques employés dans ce chapitre vous paraissent obscurs; ils s'éclairciront au fur et à mesure que vous avancerez dans le manuel).
- N'oubliez jamais de retirer la disquette de son unité avant de mettre le système sous ou hors tension. Vous risqueriez de l'endommager et de perdre les programmes et données qu'elle contient.
- Faites toujours une sauvegarde des disquettes contenant des programmes précieux. C'est le cas notamment de la disquette du système d'exploitation CP/M fournie avec le 6128. En cas de perte ou d'altération accidentelle des données d'une disquette, son remplacement pourrait s'avérer des plus coûteux.
- Pour éviter l'échement accidentel des données stockées sur la disquette du CP/M, veillez à ne pas recouvrir ses ouvertures de protection à l'écriture.
- Si vous utilisez deux unités de disquettes, l'unité AMSTRAD FDI, par exemple, mettez toujours la deuxième sous tension avant d'allumer l'ordinateur.
- Ne touchez pas la surface magnétique de la disquette.
- Ne retirez jamais la disquette en cours de lecture ou d'écriture.
- Rappelez-vous que le formatage d'une disquette entraîne l'effacement des données qu'elle contient.
- Les logiciels sur cassettes destinés au système AMSTRAD CPC464 font parfois appel à l'espace mémoire occupé par l'interface interne d'exploitation sur disques et sont donc inutilisables sur le 6128 équipé d'un lecteur de cassettes. Pour les problèmes de comptabilité concernant les logiciels sur cassette, adressez-vous directement à AMSOFT. De toute façon, la plupart des logiciels AMSOFT sont disponibles sur disquettes, compatibles avec le système 6128.
- Le dépôt légal de votre disquette CP/M (encodée d'une référence) ne permet son utilisation que sur un seul système informatique. Vous n'êtes donc pas autorisé à donner cette disquette à un autre utilisateur. À ce sujet, lisez attentivement le texte de dépôt légal situé à la fin du manuel (Annexe 1).
Chapitre 1 cours élémentaire
Mise en marche
Connexion de vos périphériques 3 Les disquettes 4 Familiarisation avec le clavier 5 Chargement des logiciels et des jours Introduction aux mots clés du BASIC AMSTRAD 7 Introduction au fonctionnement des disquettes Modes couleurs et graphiques 9 Utilisation des sons 10 Introduction à AMSDOS et CP/M 11 Introduction à Bank Manager
Passons aux choses sérieuses
Écriture d'un programme simple. Évolution et réflexions. Utilisation d'un tableau. Introduction d'un menu. Chargement et sauvegarde de variables sur une disquette. Édition et numérotation de lignes. Mise en ordre d'un programme.
Liste complète des mots clés du BASIC amstrad du 6128
Description des notations utilisées.
Liste alphabétique des mots clés
Mots clés Syntaxe Exemple Description Remarques (le cas échéant) Mots clés associés
Chapitre 4 utilisation des disquettes et des cassettes
Duplication de la disquette originale. Introduction au CP/M Plus. Utilisation des fichiers Help. Fonctionnement du système avec une et plusieurs unités. Copie de fichiers. Utilisation d'une disquette pour un travail en BASIC uniquement. Introduction aux extensions graphiques GSX. Exploitation sous CP/M 2.2. Les cassettes.
Chapitre 5 les éléments d'amSDOS et du cp/m
AMSDOS: Introduction à AMSDOS. Le catalogue de la disquette Noms, genres et en-têtes des fichiers AMSDOS Les jokers Récapitulatif des commandes AMSDOS Copie de fichiers Guide de référence des messages d'erreur 15 CP/M: Introduction au CP/M. Chargement du CP/M Plus Le mode direct Les programmes transitoires Gestion des périphériques Exploitation sous CP/M 2.2
Chapitre 6 introduction au LOGO
Qu'est-ce que LOGO ? Procedures Dr. LOGO Programmes et procédures d'édition Aides à l'utilisation
Chapitre 6 suite...
| Récapitulatif des primitives Dr. LOGO | ||||
| Traitement des mots et des.listes | ||||
| Opérations arithmetiques | ||||
| Opérations logiques | ||||
| Variables | ||||
| Procedures | ||||
| Edition/Modification | ||||
| Fonctions d'imprimante | ||||
| Ecran texte | ||||
| Ecran graphique | ||||
| Graphiques « tortues » | ||||
| Gestion de l'espace de travail | ||||
| Listes « de propriété » | ||||
| Fichiers sur disquette | ||||
| Clavier et levier de commande | ||||
| Son. | ||||
| Ordre d'exécution | ||||
| Manipulation des exceptions | ||||
| Primitives du système | ||||
| Variables du système | ||||
| « Propriétés » du système |
Chapitre 7 pour information...
| Emplacement du curseur et extensions du code de contrôle |
| Interruptions |
| Caracteres graphiques et ASCII |
| Références des touches (clés) |
| Sons |
| Messages d'erreur 21 |
| Mots clés du BASIC |
| Grilles |
| Connexions |
| Imprimantes |
| Leviers de commande |
| Organisation des disquettes |
| Extensions résidentes RSX |
| Mémoire |
| Emulateur de terminaux du CP/M Plus |
| Jeu de caractères du CP/M Plus |
Chapitre 8 complément d'information sur bank manager
Utilisation du second bloc de 64Ko
Stockage des images écran
Changement matériel de bancs
Echange d'écrans
Copiedecrans
Fonctionnement des fichiers virtuels
Création d'un disque virtuel
Enregistrement courant
Lecture, écriture et recherche de chaînes
Exemple de programme dc fichier virtuel
Chapitre 9 à vos heures de loisir...
Généralités: 9.1
Le monde des micros
Matériel et logiciel
Comparaison entre plusieurs ordinateurs
Préjugés répandus
Comment un ordinateur appréhende vos instructions
Le monde numérique
Bits et octets
Système de numérotation binaire
Système de numérotation hexadecimal
| Fonctions propres au 6128: Jeu de caractères Variables Logique Caractères définis par l'utilisateur Formatage d'impression Fenêtre Interruptions Données Sons Graphiques Les graphiques exploitant la mémoire supplémentaire Programme: « Salut l'artiste » |
Annexes
Annexe 1: Contrat d'utilisation des logiciels
Annexe 2: Petit dictionnaire.
Annexe 3: Et pour quelques programmes de plus...
Bustout
Bombardier.
Ping-pong
1 Escrime électrique - - - - - - - - -
Database - - - - - - - - - - -
Arsene Lupin
Annexe 4: Index
Partie 1: mise en marche
L'ordinateur personnel AMSTRAD 6128 peut fonctionner avec les écrans suivants:
- AMSTRAD GT65, moniteur monochrome vert
- AMSTRAD CTM644, moniteur couleur
- AMSTRAD MP2, boîtier d'adaptation et téléviseur couleur muni de prise péritel.
Connexion de l'ordinateur à un moniteur
(Si vous utilisez le 6128 avec un boîtier d'adaptation, passez directement au chapitre suivant).
- Assurez-vous que le moniteur n'est pas branché sur secteur.
- Connectez le câble sortant de l'avant du moniteur, équipé d'une fiche DIN à 6 broches, à la prise MONITOR située à l'arrière de votre ordinateur.
- Connectez le cable sortant de l'avant du moniteur, équipé d'une fiche 5 V DC, à la prise 5 V DC, située à l'arrière de votre ordinateur.
- Connectez le câble partant de l'arrière de l'ordinateur, équipé d'une petite fiche 12 V CC, à la prise située à l'avant du moniteur.

Connexion de l'ordinateur à un boîtier d'adaptation MP2
Le MP2 doit se connecter à droite de l'ordinateur.
- Assurez-vous que le MP2 n'est pas branché sur secteur.
- Connectez la fiche DIN à 6 broches du MP2 à la prise MONITOR située à l'arrière de l'ordinateur.
- Connectez la fiche 5 V CC du MP2 à la prise 5 V DC située à l'arrière de l'ordinateur.
- Connectez la prise péritel mâle du MP2 à la prise péritel femelle de votre téléviseur.
- Connectez la fiche 12 V DC du câble partant de l'arrière de l'ordinateur 12 V DC à la prise située à l'arrière du MP2.

Mise sous tension: système CPC6128 et gt65/ctm644
(Si vous utilisez votre 6128 avec un boîtier d'adaptation MP2, passez directement au chapitre suivant).
Après avoir suivi les instructions de connexion précédentes, insérez la fiche d'alimentation du système dans la prise secteur et effectuez la mise sous tension. Appuyez alors sur le commutateur POWER situé en haut à droite du moniteur lorsque ce commutateur n'est pas enfoncé, le système est hors tension.
Mettez l'ordinateur sous tension à l'aide du commutateur POWER situé à droite.
Le voyant rouge, en haut et au centre du clavier, s'allume tandis que le texte ci-dessous s'affiche sur l'écran du moniteur:
Amstrad 128K Microcomputer (v3) @1985 Amstrad Consumer Electronics Plc and Locomotive Software Ltd. BASIC 1.1 Ready
Pour éviter de vous fatiguer les yeux inutillement, réglez la commande de brillance (BRIGHTNESS) de façon à obtenir des caractères facilement lisibles sans éblouissement.
Le bouton de réglage de luminosité BRIGHTNESS se trouve à l'avant du GT65 et à droite du CTM644.
Si vous utilisez un moniteur monochrome GT65, vous devez régler le contraste et la hauteur de l'image à l'aide des boutons CONTRAST et VERTICAL HOLD, situés à la partie inférieure de sa face avant.
Le contraste doit être réglé au minimum, tout en permettant une lecture facile des caractères.
Mise sous tension: CPC6128 et boîtier d'adaptation MP2
Après avoir suivi les procédures de connexion précédemment décrites, insérrez la fiche d'alimentation du système dans la prise secteur.
Mettez votre téléviseur sous tension.
Mettez l'ordinateur sous tension à l'aide du commutateur POWER situé sur la droite.
Le voyant rouge situé au centre du clavier doit s'allumer tandis que l'écran de votre téléviseur affiche:
Amstrad 128K Microcomputer (v3) €1985 Amstrad Consumer Electronics plc and Locomotive Software Ltd. BASIC 1.1 Ready
Réglez votre téléviseur de façon à obtenir une image optimale. Les caractères s'affichent en jaune sur fond bleu foncé.
Autres connexions :
Si vous désirez connecter à votre système d'autres péripériques, tels que:
* manettes de jeu * lecteur de cassettes * imprimante * unité de disque supplémentaire * enceintes/amplificateur externes * péripérique(s) d'extension
... vous trouverez de plus amples informations à ce sujet dans la partie 2 du cours élémentaire.
En dernier ressort, vérifie que vous avez bien respecté les indications mentionnées au début du manuel, dans la rubrique « IMPORTANT » :
Partie 2: connexion de vos périphériques
Cette partie explique comment connecter au système 6128 les divers périphériques ou extensions. Vous trouvez des informations concernant l'utilisation de ces périphériques dans les parties correspondantes du manuel.
Manettes de jeu
La manette de jeu AMSTRAD JY2 est un élément supplémentaire dont vous pourrez, si vous le désirez, enrichir votre ordinateur 6128. Utilisée notamment par certains programmes de jeu, elle sert de manche à balai avec bouton de mise à feu.
Connectez la fiche de la manette à la prise JOYSTICK de votre ordinateur. Vous pouvez utiliser deux manettes : la seconde sera alors enchaînée dans la prise de la première.
Il est également possible d'utiliser la manette de jeu JY1 avec le 6128.
Vous trouverez de plus amples informations sur les manettes de jeu plus loin dans le manuel.
Lecteur/enregistreur de cassettes
Les programmes peuvent être chargés et sauvegardés sur cassettes ou sur disques. Vous trouverez plus loin dans le manuel les commandes gérant ces périphériques.
Pour connecter un lecteur/enregistreur de cassettes à votre 6128, utilisez le cable AMSOFT CL1 ou un cable d'interconnexion standard équivalent.
Insérez la fiche DIN à 5 broches du câble dans la prise TAPE de l'ordinateur.
Insérez l'extrémité du cable bleu dans la prise REMOTE ou REM (télécommande) de votre lecteur/enregistreur de cassettes.
Insérez l'extrémité du cable rouge dans la prise MIC, COMPUTER IN ou INPUT (entrée enregistrement) de votre lecteur/enregistreur.
Insérez l'extrémité du câble blanc dans la prise EAR (écouteur), COMPUTER OUT (sortie ordinateur) ou OUTPUT (sortie) de votre lecteur/enregistreur.
La qualité de transmission des données entre le 6128 et la cassette dépend largement des niveaux d'enregistrement (LEVEL) et de sortie (VOLUME) de votre lecteur/enregistreur. Si vous ne parvenez pas à charger ou sauvegarder vos programmes correctement, faites varier les réglages jusqu'à obtenir la qualité souhaitée.
Imprimante
Le 6128 peut fonctionner avec toute imprimante parallèle compatible Centronics. Pour l'imprimante AMSTRAD DMP1, utilisez le cable qui l'accompagne.
Si vous utilisez une autre imprimante compatible Centronics, procurez-vous le câble AMSOFT PL1.
Connectez l'extrémité du cable équipée d'un connecteur femelle plat au connecteur mâle PRINTER situé à l'arrière de l'ordinateur.
Connectez ensuite la fiche type Centronics de ce câble dans la prise située à l'arrière de l'imprimante. Si les deux côtés de la prise de l'imprimante sont dotés d'agrafes de fixation, celles-ci doivent s'enclencher dans les ouvertures de part et d'autre de la fiche AMSTRAD.
Le fonctionnement de l'imprimante est décrit en détail plus loin dans le manuel.
Unité de disquette supplémentaire (AMSTRAD FD1)
Vous pouvez ajouter au système une seconde unité de disquette, AMSTRAD FD1. Les avantages d'un système à deux unités de disquette apparaitront nettement aux habitués de CP/M, car de nombreux programmes sont prévus pour exploitation avec un disque programme inséré dans une unité et un autre disque dans une seconde unité pour le stockage des fichiers de données.
L'exploitation d'un programme sous CP/M nécessite toujours son chargement à partir d'une disquette (en effet, le BASIC de la ROM n'est pas accessible). CP/M permet l'exécution de programmes exceedant l'espace mémoire disponible grâce à une technique de recouvrement obligatoire pour développer le programme en plusieurs fichiers. Il est possible que le nombre de fichiers programme contenu sur la disquette soit tel qu'il ne reste plus de place disponible pour les données.
Grâce à la souplesse des utilisateurs fournis avec le système 6128 à disquette, vous pouvez effectuer avec une seule unité de disquette toutes les manipulations de fichiers dont vous avez besoin : copie, effacement, etc. Quoi qu'il en soit, une seconde unité accélérera ces opérations et réduira les risques de mauvaises manipulations.
Pour connecter l'unité FD1 au 6128, utilisez le cable AMSOFT DI2.
Le connecteur le plus large du câble doit s'insérer dans le connecteur DISK DRIVE 2 situé à l'arrière de l'ordinateur, tandis que le plus étroit vient s'insérer dans le connecteur situé à l'arrière de l'unité FD1.
N'OUBLIEZ PAS de retirer les disquettes des unités et de mettre le système hors tension avant de connecter ou déconnecter la deuxième unité de disquette. Si vous effectuez des connexions alors que le système est sous tension, vous risquez d'altérer le programme stocké dans la mémoire de l'ordinateur. Avant de vous attaquer aux connexions, pensez toujours à sauvegarder les programmes importants.
Après connexion de l'unité FD1 à l'ordinateur, mettez-la sous tension, à l'aide de son commutateur arrêté. Mettez ensuite sous tension le 6128 à l'aide du commutateur situé à sa droite. Les voyants rouge et vert de l'unité FD1 doivent alors s'allumer, indiquant que l'unité est prête à fonctionner.
Le fonctionnement de la seconde unité de disquette est traité en détail dans une partie ultérieure du manuel.
Enceintes/amplificateur extérieur
Pour apprécier pleinement les capacités sonores à trois canaux de votre ordinateur, vous pouvez le raccorder à un amplificateur muni d'enceintes.
Le câble d'entrée de l'amplificateur doit se terminer par une fiche jack stéréo de 3,5 mm, que vous insérerez dans la prise STEREO de l'ordinateur.
Voici les connexions de la fiche jack :
Canal gauche - Extrémité de la fiche
Canal droit - Partie centrale de la fiche
Masse électrique - Partie arrêtée de la fiche
Le 6128 émet alors des signaux de niveau constant par la sortie STEREO : c'est à vous qu'il apparaît de régler le volume sonore, la balance, les aigus et les graves à l'aide des commandes de votre amplificateur.
Vous pouvez également utiliser un casque d'écoute à forte impédance, dont le volume ne sera toutefois pas réglable à partir de la commande VOLUME de l'ordinateur. Quant aux casques à faible impédance comme ceux qui équipent généralement les chaînes stéréo, ils ne fonctionnent pas directement sur l'ordinateur.
Une partie de ce manuel est d'ailleurs consacrée à l'acheminement du son sur les différents canaux de sortie.
Périphériques d'extension
Vous pouvez également connecter des périphériques d'extension tels qu'interfaces série, modems, crayons lumineux, cartes ROM, etc., sur le connecteur EXPANSION situé à l'arrière de l'ordinateur.
Cette prise recevra aussi le synthétiseur de parole/amplificateur SSA2 AMSOFT.
Le chapitre « Pour information... » détaille les connexions à la prise EXPANSION.
Vérifiez, pour finir, que vous avez bien suivi les avertissements figurant au début de ce manuel, dans la rubrique « IMPORTANT » :
REMARQUES RELATIVES À L'INSTALLATION : 6 en
REMARQUES RELATIVES AU FONCTIONNEMENT: 4 et 8
Partie 3: les disquettes
Je 6128 utilise des disquettes compactes de format 3 pouces. Nous vous conseillons l'utilisation, pour une question de fiabilité, de n'utiliser que des CF-2 (Compact Floppy) d'AMSOFT. Cependant, les disquettes 3 pouces des principaux fabricants peuvent également convenir.
Insertion
Chaque face de la disquette peut être utilisée séparément. La disquette doit être insérée avec son étiquette vers l'extérieur et la face que vous voulez utiliser dirigée vers le haut.

Protection en écriture
Le coin gauche de chaque face d'une disquette porte une flèche montrant un trou muni d'un obturator. C'est le trou de protection en écriture qui vous empêche d'effacer ou d'écrire sur des données qu'il est important de ne pas perdre.

Quand le trou est fermé, l'ordinateur peut écrire sur la disquette. Quand le trou est ouvert, rien ne peut être écrit, vous protégeant contre tout effacement accidentel de programmes importants.
Les fabricants de disquettes employent des procédés différents pour l'ouverture et la fermeture des trous de protection. Pour la CF-2 d'AMSOFT, suivez les instructions ci-dessous:
Pour ouvrir le trou de protection, abaissez l'obturateur situé sur le coin gauche de la disquette.

Pour fermer le trou de protection, relevez l'obturateur.
Certains autres modèles utilisent un petit levier en plastique situé dans une fente du coin gauche.

Pour ouvrir le trou de protection sur ce genre de disquette, il faut faire glisser le levier vers le milieu de la disquette en utilisant la pointe d'un stylo, par exemple.

Quelle que soit la procédure employée, il faut donc ouvrir le trou de protection si vous pouvez éviter de perdre vos programmes ou vos données en écrivant par-dessus.
Important
Assurez-vous toujours que les trous de protection de votre disquette système CP/M sont ouverts.
Quand la disquette est à l'intérieur de l'unité de disquette
Sur le devant de l'unité de disquette se trouvent un voyant rouge et un bouton-poussoir pour l'éjection des disquettes.

Levoyant indicateur
Ce petit voyant rouge a deux fonctions : Si une seule unité de disquette est connectée, le voyant indique que des données sont lues ou écrites sur la disquette. Si deux unités de disquettes sont connectées, le voyant de l'unité B sera toujours allumé, vous permettant ainsi d'identifier les unités rapidement. Cependant, lors d'une opération (lecture ou écriture) de l'unité A, le voyant de l'unité B doit s'éteindre.
Le bouton-poussoir
Il vous permet d'éjecter la disquette de son unité.
Important
- TOUJOURS ENLEVER VOTRE DISQUETTE DE L'UNITE AVANT D'ALLUMER OU D'ETEINDRE VOTRE SYSTEME.
- NE JAMAIS ESSAYER D'EJECTER UNE DISQUETTE PENDANT UNE OPE RATION DE LECTURE OU D'ECRITURE SUR CETTE DISQUETTE, CE QUI POURRAIT ENTRainer LA DESTRUCTION DES DONNEE S'Y TROU VANT.
- LA DISQUETTE MAGNETIQUE EST PROTEGEE PAR UNE ENVELOPPE DE PLASTIQUE DUR. ATTENTION A NE PAS TOUCHER A LA DISQUETTE ELLE-MEME.
Partie 4: informations préalables
Avant de passer au chargement des logiciels et à la sauvegarde des programmes sur disquettes, attardons-nous sur le clavier. Ceux qui ont l'habitude des micro-ordinateurs peuvent sauter cette partie.
L'ordinateur est sous tension et le message initial affiché : voyons maintenant les fonctions des différentes touches du clavier.

Les touches de déplacement du curseur , situées en haut et à droite du clavier, permettent de faire évoluer le curseur, petit bloc homogène, en différents points de l'écran.
Appuyez tour à tour sur chaque touche de déplacement et observez le déplacement du curseur.

La touche [RETURN] permet d'entrer dans la mémoire de l'ordinateur les informations que vous venez de taper. Vous devez appuyer sur cette touche après chaque instruction tapée au clavier : aussitôt, une nouvelle ligne commence à l'écran.
À partir de maintenant, quand vous verrez [RETURN], cela voudra dire appuyez sur la touche [RETURN] après chaque instruction ou ligne de programme.
En conditions normales de fonctionnement (par défaut), cette touche a les mêmes effets que [RETURN] et peut se substituer à elle. Toutefois, à l'instar des touches de fonction du clavier numérique, les fonctions de la touche [ENTER] peuvent être redéfinies. Cette question sera abordée ultérieurement.

Cette touche est utilisée pour effacer un caractère à gauche du curseur (par exemple une dette ou un nombre) que vous ne pouvez pas conserver.
Tapez abcd; la lettre d se trouve à gauche du curseur. Si vous décidez que vous ne voulez pas de cette lettre, appuyez sur la touche [DEL] une fois et la lettre d disparaît. Si vous continuez à appuyer sur cette touche [DEL], les lettres abc disparaîtront aussi.

Il y a deux touches [SHIFT]. Si vous appuyez sur l'une des deux et la maintenez appuyée pendant que vous tapez un autre caractère, une majuscule ou le symbole supérieur de la touche s'affiche sur l'écran.
Tapez la lettre e, puis appuyez sur [SHIFT] (en maintenant cette touche) et tapez sur la lettre e de nouveau. Sur l'écran vous verrez :
Tapez maintenant quelques espaces en maintenant la barre d'espacement appuyée. Essayez avec les touches du haut du clavier, au-dessus des lettres. Tapez le chiffre 2, puis appuyez sur [SHIFT] et tapez le chiffre 2 de nouveau. Vous obtenez sur l'écran:
Vous pouvez maintenant voir ce qui arrive quand vous appuyez sur la touche [SHIFT] tout en tapant un caractère. Essayez en tapant chacune des touches, d'abord toutes seules, puis en appuyant sur la touche [SHIFT] en même temps.

Cette touche a le même effet que la touche [SHIFT], excepté qu'il suffit de la presser une fois. Toutes les lettres seront affichées en majuscules, sauf les touches numériques qui resteront des chiffres. Appuyez simultanément sur [CONTROL] et [CAPS LOCK] puis tapez :
abcdef123456
Sur l'écran vous voyez :
ABCDEF123456
Et les chiffres ont été tapés tels quels. Maintenant, si vous appuyez sur [SHIFT] en même temps, vous aurez :
abcdef123456
Pour revenir aux minuscules, appuyez de nouveau sur [CAPS LOCK].


Pour taper les majuscules et les symboles supérieurs des touches sans avoir à presser continuellement sur [SHIFT], appuyez sur [CONTROL], puis sur [CAPS LOCK]. Maintenant tapez :
abcdef123456
Vous verrez apparaître :
ABCDEF! " $%
Il est également possible de taper des chiffres sur le pavé numérique de droite du clavier (10 à 19).
Si vous maintenez la touche [CONTROL] enfoncée et appuyez une fois sur [CAPS LOCK], vous revenez à l'état précédent, majuscules ou minuscules. Si vous êtes toujours en majuscules, appuyez sur [CAPS LOCK] une fois pour revenir en minuscules.

Cette touche sera à effacer un caractère qui se trouve sous le curseur. Tapez: ABCDEFGH. Le curseur est à droite du (H). Puis appuyez quatre fois sur le curseur gauche . Le curseur se superpose à la lecture E. Notez que la lecture E est always visible sous le curseur. Appuyez sur la touche [CLR] une fois et vous verrez que la lecture E a été effacée et que les lettres FGH se sont déplacées d'une case vers la gauche tandis que la letter F se trouve sous le curseur. Appuyez sur la touche [CLR] sans la lacher. Les lettres F,uis G et H disparaissent.

Cette touche bleue en haut du clavier, à gauche, permet de prendre la poudre d'ESCampette, autrement dit d'interr compromise momentarily un programme en pressant la touche une fois et de le reprendre en tapant une autre touche, ou d'arrêter complètement en appuyant encore une fois sur [ESC].
Appuyez maintenant deux fois de suite sur la touche [ESC]. L'ordinateur est à nouveau prêt à accepter de nouvelles instructions.
Important
Quand vous arriverez au bord droit de l'écran en tapant plus de 40 caractères, le caractère suivant passera automatiquement à la ligne suivante. Cela peut dire qu'il NE FAUT PAS presser [RETURN], à l'instar des habitués des machines à écrire, qui tapent RETOUR ou ENVOI à la fin d'une ligne.
L'ordinaire s'en charge automatiquement et réagit à un [RETURN] non prévu par un message d'erreur - (d'habitude Syntax error) - soit immédiatement, soit quand vous lancez l'exécution du programme.
Si le message Syntax error apparait sur l'écran, l'ordinateur vous dit qu'il ne comprend pas une des instructions que vous avez tapées. Par exemple, si vous tapez :
print [RETURN]
... le message suivant apparait : Le message suivant apparaît :
Syntax error
Car l'ordinateur ne connaît pas la commande printt.
Si vous vous trompez dans une ligne de programme comme :
10 print "abc" [RETURN]
... le message Syntax error n'apparaîtra que lors de l'exécution du programme.
Tapez:
run [RETURN]
Cette commande ordonne l'exécution du programme que vous venez d'entrer en mémoire.
Sur l'écran vous voyez :
Syntax error in 10 10 Print "abc"
Ce message vous dit dans quelle ligne se trouve l'erreur et vous présente la ligne du programme avec le curseur-editeur afin que vous puissiez corriger l'erreur.
Appuyez sur le curseur droit jusqu'à ce que le curseur soit au-dessus du t de printt; pressez la touche [CLR] pour enlever le t superflu, puis pressez [RETURN] pour introduire la ligne correcte dans l'ordinateur.
Tapez :
run [RETURN]
... et vous verrez que l'ordinateur a accepté l'instruction en affichant :
abc
Pour terminer, vérifie que vous avez bien respecté les avertissements figurant au début du manuel, dans la rubrique « IMPORTANT »:
Partie 5: chargement des logiciels et des...
Bienvenue aux utilisateurs qui abordent directement cette partie!
Pour expérimenter la vitesse de chargement des logiciels sur disquette, mettez le système sous tension et insérez l'une des disquettes CP/M dans l'unité, face 4 vers le haut.
Tapez:
run "rointime. dee" [RETURN]
Au bout de quelques secondes, le programme est chargé en mémoire. Répondez à la question affichée à l'écran, confirmant que vous utilisez bien un moniteur vert (tapez Y pour Oui et N pour Non). Vous verrez alors apparaitre une démonstration du jeu « Roland in Time ». Elle vous incitera peut-être à acheter une copie du jeu...
Après cette démonstration, vous pouvez sortir du programme en appuyant sur la touche [ESC] tout en maintenant les touches [CONTROL] et [SHIFT]. Vous réinitialisez ainsi votre système afin de lancer une nouvelle application sans avoir besoin d'enlever la disquette de son unité.
Si le programme n'est pas chargé, un message d'erreur vous indique l'anomalie :
... signifie que vous n'avez pas inséré la disquette correctement ou, si vous disposez d'une deuxième unité de disquette, que vous l'avez insérée dans l'unité B.
... indique que vous n'avez pas inséré la bonne disquette (ou la bonne face) ou que vous avez fait une erreur en tapant le nom, ROINTIME. DEM.
Bad command
... signifie que vous avez mal tape ROINTIME. DEM en inscrant un espace ou un signe de ponctuation superflu.
Type mismatch
... signifie que vous avez oublié les guillemets.
Syntax error
... vous avez fait une erreur en tapant run.
... signifie que l'ordinateur n'a pas réussi à lire les données de la disquette. Vérifiez que vous avez inséré la bonne disquette et tapez R pour Retry (nouvel essai). Ce message apparait si vous avez endommagé la disquette en mettant le système sous ou hors tension sans la retirer.
Lorsque vous saurez dupliquer une disquette, n'oubliez jamais de copier les programmes importants, notamment le CP/M.
Chargement du logiciel AMSOFT et du programme « BIENVENUE »
Nous espérons avoir suscité votre intérêt pour l'informatique, passons maintenant à un jeu...
Insérez le disqueette dans l'unité et tapez :
run "disc" [RETURN]
Au bout de quelques secondes, le jeu est chargé et vous pouvez commencer.
Tapez : run "disc" après avoir inséré l'une des disquettes CP/M dans l'unité, face 4 vers le haut, ce qui déclenche une démonstration de « Bienvenue »
Après cette démonstration, réinitialisez votre système à l'aide des touches [CONTROL], [SHIFT] et [ESC].
Bien que l'instruction run "disc" permette de charger la plupart des logiciels AMSOFT sur disquettes, il peut arriver que vous ayez à en utiliser une autre. Dans tous les cas, respectez scrupuleusement les instructions de chargement indiquées sur la disquette duiel.
Pour terminer, vérifie que vous avez bien suivi les avertissements figurant au paragraphe « IMPORTANT » du début de ce manuel.
Partie 6: passons à la programmation...
Jusqu'ici, nous avons vu ce qu'il faut faire et ne pas faire, comment installer l'ordinateur et connecter les périphériques. Nous avons appris à charger les logiciels et à utiliser certaines touches du clavier. Nous allons maintenant apprendre à utiliser des instructions pour faire bouger les choses...
Comme vous et moi, l'ordinateur ne comprend les instructions que dans la langue qu'il connaît. Ce langage s'appelle le BASIC (abréviation de Beginners' All-purpose Symbolic Instruction Code). Les mots du BASIC sont des « mots clés » communiquant chacun une fonction particulière à l'ordinateur. Comme tous les langages, le BASIC obéit à des règles de grammaire. Dans ce cas précis, la grammaire s'appelle « Syntaxe » et l'ordinateur a toujours l'amabilité de vous indiquer vos erreurs de syntaxe.
Introduction aux mots clés du BASIC amstrad
Vous trouverez une description de la syntaxe du BASIC AMSTRAD dans le chapitre « Liste complète des mots clés du BASIC AMSTRAD 6128 »
Pour effacer l'écran, tapez :
c1s [RETURN]
L'écran s'efface et le mot Ready s'affiche suivi du curseur ■, dans l'angle supérieur gauche de l'écran.
Vous pouvez utiliser indifféremment les MAJUSCULES ou les minuscules pour entrer un mot clé BASIC dans votre ordinateur.
Sert chaque fois qu'il est nécessaire d'afficher des caractères, des mots ou des chiffres sur l'écran. Si vous tapez l'instruction suivante :
print "bonjour" [RETURN]
Vousoyez apparaître:
bonjour
Les guillemets (") délimitant le message que l'on désire voir apparaître. Vous remarquerez que BSD est apparu sur l'écran aussitôt que la touche [RETURN] a été frappée. Tapez:
c1s [RETURN]
... pour effacer l'écran.
L'exemple précédent montrait une instruction simple d'une seule ligne. L'instruction a été exécutée dès que vous avez appuyé sur la touche [RETURN], puis a été oublée. Il est possible de stocker une série d'instructions s'exécutant selon un ordre spécifique, que l'on appelle un « programme ». Les instructions qui composent un programme sont du même type que celles que nous venons de voir, mais précédées d'un numéro de ligne. Les numéros de ligne d'un programme indiquent à l'ordinateur l'ordre d'exécution des instructions. Lorsque vous appuyez sur [RETURN], la ligne est stockée dans la mémoire. Tapez :
10 print "bonjour" [RETURN]
Vous remarquerez qu'après avoir appuyé sur [RETURN], bonjour ne s'est pas affiché à l'écran. Il s'est inscrit dans la mémoire de l'ordinateur pour former un programme d'une ligne. Pour exécuter ce programme, tapez :
run [RETURN]
Vous verrez alors bonjour apparaître à l'écran. Vous pouvez, si vous le désirez, remplacer PRINT par un point d'interrogation :
10 ? "bonjour" [RETURN]
Lorsqu'un programme a été mis en mémoire, on peut vérifier ce qu'on a tapé en demandant sa «liste ». Tapez : Renvoie uniquement la version corrigée du passage, en respectant les règles. N'ajoute aucun mot qui ne soit pas déjà présent ou clairement tronqué.
list [RETURN]
et vous voyagez apparaitre :
10 PRINT "bonjour"
... qui est le programme stocké en mémoire.
Avez-vous remarqué que le mot PRINT est maintenant en majuscules ? Cela signifie qu'il a été reconnu par l'ordinateur en tant que mot clé du BASIC.
Tapez: LIST [RETURN] pour effacer l'écran, sans supprimer votre programme de la mémoire.
Le mot clé GOTO demande à l'ordinateur d'aller d'une ligne à une autre afin d'en sauter un certain nombre ou de former une boucle. Tapez :
10 PRINT "bonjour" [RETURN] 20 GOTO 10 [RETURN]
... puis :
run [RETURN]
Vous voyagez alors bonjour s'afficher sans interruption, ligne après ligne, la ligne 20 du programme demandant à l'ordinateur de retourner à la ligne 10 et de poursuivre l'exécution.
Pour interrompre momentanément le programme, appuyez sur [ESC]. Pour continuer, actionnez n'importe quelle autre touche. Pour l'arrêter complètement, actionnez [ESC] deux fois de suite.
Faites :
cls [RETURN]
... pour effacer l'écran.
Pour voir le mot bonjour s'afficher sur toute la ligne, il suffit de mettre un point-virgule à la fin de la ligne 10, après les guillemets.
Tapez:
10 PRINT "bonjour"; [RETURN]
20 GOTO 10 [RETURN]
run [RETURN]
Le point-virgule commande à l'ordinateur d'afficher le prochain groupe de caractères immédiatement après le précédent (à moins qu'il ne soit trop long pour tenir sur la ligne).
Quittez ce programme en appuyant deux fois sur [ESC]. Tapez la ligne 10 à nouveau, mais en remplaçant le point-virgule (;) par une virgule (,).
10 PRINT "bonjour", [RETURN] run [RETURN]
La virgule a demandé à l'ordinateur d'afficher le prochain groupe de caractères 13 colonnes après le début de celui-ci. Cette fonction permet d'afficher les données en colonnes. Cependant, si le nombre de caractères inclus dans un groupe dépasse 12, le groupe suivant est décalé de 13 autres colonnes, afin de tous les jours maintenir un espace entre les groupes de caractères.
La taille de ces zones de 13 caractères peut être modifiée par la commande ZONE, décrite plus loin dans le manuel.
Pour sortir du programme, appuyez deux fois sur [ESC]. Pour vider complètement la mémoire, remettez l'ordinateur à zéro en appuyant sur [CONTROL], [SHIFT] et [ESC], dans cet ordre.
Cette commande sert à informer l'ordinateur qu'il doit attendre que l'on ait tapé quoi que ce soit avant de continuer. Par exemple:
i0 INPUT "Quel age avez-vous"; age [RETURN]
20 PRINT "Vous paraissez nettement moins que vos"; age;"ans."
[RETURN]
run [RETURN]
Sur l'écran on voit :
Quel âge avez-vous?
Si vous donnez votre âge, mettons 18, puis [RETURN], on voit alors s'afficher :
Vous paraissiez nettement moins que vos 18 ans.
Cet exemple montre l'utilisation de la fonction input et d'une variable numérique. Le mot âge est mis en mémoire à la fin de la ligne 10 pour que l'ordinateur l'associe à tout nombre tapé après le point d'interrogation, afin de procéder à l'affichage de la ligne 20. Bien que nous ayons utilisé le mot âge pour la variable âge, nous aurions pu aussi bien prendre la variable a ou b...
Réinitialisez l'ordinateur avec les touches [CONTROL] [SHIFT] et [ESC]. Si vous voulez l'entrée (INPUT) de caractères indéterminés (lettres ou lettres et chiffres), le signe dollar ($) doit être placé à la fin de la variable. Cette variable est alors appelée « variable chaîne ».
Tapez le programme suivant (en faisant attention à mettre un espace après le r de bonjour et avant le m de mon).
10 INPUT "Quel est ton nom"; nom\$ [RETURN]
20 PRINT "bonjour "; nom\$; " mon nom est Roland" [RETURN]
run [RETURN]
Sur l'écran, on voit :
Quel est ton nom?
Tapez votre nom puis [RETURN]
Si votre nom est Fred, vous verrez sur l'écran :
Bonjour Fred, mon nom est Roland.
Bien que nous ayons utilisé nomcomme variable chaîne, nous aurions aussi bien pu utiliser a. Nous allons maintenant combiner les deux exemples précédents en un seul programme.
Faisons à nouveau [CONTROL] [SHIFT] et [ESC]. Puis tapons le programme suivant:
5 CLS [RETURN] 10 INPUT "Quel est ton nom"; a[RETURN] 20 INPUT "Quel est ton age"; b [RETURN] 30 PRINT "Je dois dire "; a; " que tu ne fais pas tes"; b; " ans." [RETURN] run [RETURN]
Dans ce programme, nous avons utilisé deux variables, a$ pour le nom et b pour l'âge. Sur l'écran on vaït :
Quel est ton nom ?
Tapez votre nom (Fred) puis [RETURN]. La question suivante apparait :
Quel est ton age?
Tapez maintenant votre âge (18) puis [RETURN].
Je dois dire Fred que tu ne fais pas tes 18 ans.
Éditeur un programme
Si l'une des lignes du programme a été tapée incorpètement, entraînant le message Syntax error ou un autre message d'erreur, il est possible de l'editor (autrement dit de la modifier) sans avoir à la taper. Supposons que le programme précédent ait été mal tapé:
5 CLSS [RETURN] 10 INPUT "Quele est to nom"; a\[RETURN] 20 INPUT "Quel est ton age"; b [RETURN] 30 PRINT"Je doit dire"; a;" que tu ne fais pas tes"; b;"ans." [RETURN]
Trois erreurs se sont glissées dans le programme ci-dessus:
Dans la ligne 5, on a tape clss au lieu decls Dans la ligne 5, on a tapé clss au lieu de cls
Dans la ligne 10, on a tape to au lieu de ton
Dans la ligne 30, on a oublié l'espacement entre dire et les guillements (^#)
Il existe trois méthodes pour éoperator un programme. La première consiste à retaper entièrement la ligne. Quand une ligne est retapée et entrée en mémoire, elle remplace la ligne qui portait le même numéro.
La deuxième méthode consiste à opérer à l'aide du curseur.
La dernière est appelée Copy Cursor, autrement dit Copie avec l'aide du Cursor.
Méthode d'édition à l'aide du correcteur
Pour corriger la ligne 5, tapez :
édit 5 [RETURN]
La ligne 5 apparait sous la ligne 30, le curseur place sur le c de clss.
Pour enlever le s en trop dans clss, appuyez sur la touche curseur droite jusqu'à ce que celui-ci soit sur le dernier s, puis appuyez sur la touche [CLR]. Le s a disparu.
Appuyez maintenant sur [RETURN], afin de corriger la ligne 5 dans la mémoire. Tapez maintenant :
... pour vérifier que la ligne 5 est correcte.
La commande AUTO, décrite plus loin, peut servir à opérer un nombre de lignes successives de la même manière que la méthode d'édition à l'aide du curseur.
Méthode par copie avec le curseur
Le curseur de copie est un deuxième curseur qui s'affiche lorsque vous appuyez simultanément sur [SHIFT] et sur l'une des touches du curseur. Il se détache du curseur principal et peut circuler sur l'écran de manière autonome.
Pour corriger les fautes des lignes 10 et 30, actionnez et maintenez la touche [SHIFT] en pressant sur la touche curseur, jusqu'à ce que le curseur soit au début de la ligne 10. Vous VOYZ que le curseur principal, en bas, n'a pas bougé. Puis pressez la touche [COPY] jusqu'à ce que le curseur soit placé dans l'espace entre to et nom. La ligne 10 est réécrite en même temps en bas et le curseur principal s'immobilise à la même place que le curseur de copie. Tapez la dette n. qui apparait sur la ligne du bas seulement.
Le curseur principal a bougé mais le curseur de copie est resté à sa place. Maintenant, appuyez sur la touche [COPY] pour afficher la totalité de la ligne 10. Pressez [RETURN] afin que cette nouvelle ligne 10 soit mise en mémoire. Le curseur de copie disparaît et le curseur principal se place au-dessous de la ligne 10. Pour corriger la deuxième faute, maintenez la touche [SHIFT] enfoncée et appuyez sur la touche curseur ∩ pour faire apparaître le curseur de copie au début de la ligne 30.
Appuyez sur [COPY] jusqu'à ce que le curseur de copie soit superposé aux guillemets suivants « dire ». Appuyez une seule fois sur la barre d'espacement. Un espace va s'introduire sur la ligne du bas. Continuez d'appuyer sur la touche [COPY] jusqu'à ce que la ligne 30 soit copiée. Appuyez sur [RETURN]
Vous pouvez demander la liste du programme en tapant :
REMARQUE: Pour déplacer rapidement le curseur (en cours d'édition) à l'extrémité droite ou gauche d'une ligne, maintenez la touche [CONTROL] et appuyez sur une des touches fléchées ou .
Effectuez la remise à zéro avec les touches [CONTROL], [SHIFT] et [ESC].
Les commandes IF et THEN demandent à l'ordinateur de tester une condition spécifique et de procéder à une exécution en fonction du résultat du test. Par exemple, dans l'instruction :
if 1 + 1 = 2 then print "vrai" [RETURN]
... l'ordinateur vérifie la condition 1 + 1 = 2 et affiche «vrai», le cas échéant.
Le mot clé ELSE peut servir à indiquer ce que l'ordinateur doit faire si la condition IF n'est pas remplie.
if 1 + 1 = 0 then print "vrai" else print "faux" [RETURN]
Nous allons maintenant prolonger notre programme à l'aide de la commande IF THEN.
Tapez le programme suivant, en remarquant que nous introduisons deux symboles nouveaux : < signifie moins grand que et se situe à côté de la touche M, > signifie plus grand que et se trouve à côté du signe <, moins grand que.
5 CLS [RETURN]
10 INPUT "quel est ton nom"; a$ [RETURN]
20 INPUT "quel age as-tu"; age [RETURN]
30 IF age < 13 THEN 60 [RETURN]
40 IF age < 20 THEN 70 [RETURN]
50 IF age > 20 THEN 80 [RETURN]
60 PRINT "donc "; a$; "tu n'est pas encore un adolescent avec tes"; age; "ans."; END [RETURN]
70 PRINT "donc "; a$; "tu es un adolescent avec tes"; age; "ans."; END [RETURN]
80 PRINT "eh bien "; a$; "tu n'est donc plus un adolescent avec tes"; age; "ans."; [RETURN]
Pour vérifier que ce programme est correct, faites :
list [RETURN]
... puis tapez : Renvoie
run [RETURN]
Vous pouvez maintenant répondre aux questions de l'ordinateur et observer ce qui se passe.
Vous pouvez constater les effets du IF (si) et du THEN (alors) comme commandes dans un programme. Nous avions aussi ajouté le mot END (fin) à la fin des lignes 60 et 70. Ce mot réservé END est utilisé pour permettre fin à un programme. S'il n'était pas là, le programme continuerait à avancer et afficher aussi les lignes 70 et 80.
Le mot END à la fin de la ligne 70 joue le même rôle. Les deux-points (:) avant le mot END le séparent de l'instruction précédente. Les : sont utilisés pour séparer des instructions afin d'en mettre plusieurs sur une même ligne. Nous avons aussi ajouté la ligne 5 pour effacer l'écran, comme il convient de le faire au début de chaque programme, pour rendre les choses plus claires.
Remise à zéro avec [CONTROL], [SHIFT] et [ESC].
Nous allons utiliser maintenant les commandes FOR et NEXT.
Les commandes FOR et NEXT permettent de répéter un certain nombre de fois une action définie (boucle). Le groupe d'instructions à répéter doit être délimité par FOR et NEXT.
Tapez:
5 CLS [RETURN]
10 FOR a=1 TO 10 [RETURN]
20 PRINT "ACTION execute"; a; "fois" [RETURN]
30 NEXT a [RETURN]
run [RETURN]
Vous remarquerez que l'instruction de la ligne 20 a été exécutée dix fois, comme le spécifie la commande FOR de la ligne 10. Vous constatez également que la valeur de la variable est incrémentée de 1 à chaque passage dans la boucle.
Le mot clé STEP peut servir à définir le pas de la commande FOR NEXT. Par exemple, vous pouvez remplacer la ligne 10 par :
10 FOR a = 10 TO 50 STEP S [RETURN]
run [RETURN]
Vous pouvez aussi fixer des pas négatifs :
10 FOR a=100 TO 0 STEP -10 [RETURN]
run [RETURN]
REM est l'abréviation de REMark. Cette instruction demande à l'ordinateur d'ignorer tout ce qui suit sur la ligne d'instruction. REM peut ainsi servir à introduire des informations : le titre d'un programme ou l'utilisation d'une variable par exemple :
10 REM Pan sur les envahisseurs [RETURN] 20 V = 5 : REM nombre de vies [RETURN]
L'apostrophe (obtenue en appuyant sur [SHIFT] et sur la touche 7) peut remplacer REM :
10 Pan sur les envahisseurs [RETURN] 20 V=5' nombre de vies [RETURN]
Si un ensemble d'instructions doit être exécuté plusieurs fois, vous pouvez éviter de retaper les instructions en créant un « sous-programme » dont l'appel se fait grâce à la commande GOSUB, suivie du numéro de ligne requis. La fin du sous-programme s'indique par RETURN. L'ordre passe alors à l'instruction qui suit immédiatement la commande GOSUB qu'il vient d'exécuter.
(Les deux programmes suivants ne « font » rien d'autre qu'afficher des mots à l'écran. Comme ils ne seront qu'à illustrer le fonctionnement des sous-programmes, il n'est pas indispensable de les taper.)
Par exemple, dans ce programme :
10 MODE 2 [RETURN]
20 PRINT"Dame souris trotte," [RETURN]
30 PRINT"Noire dans le gris duoir," [RETURN]
40 PRINT"Dame souris trotte," [RETURN]
50 PRINT"Grise dans le noir." [RETURN]
60 PRINT [RETURN]
70 PRINT"Un nuage passe," [RETURN]
80 PRINT"I fait noir comme en un four" [RETURN]
90 PRINT"Un nuage passe," [RETURN]
100 PRINT"Tiens,le petit jour !" [RETURN]
110 PRINT [RETURN]
120 PRINT"Dame souris trotte," [RETURN]
130 PRINT"Rose dans les rayons bleus," [RETURN]
140 PRINT"Dame souris trotte," [RETURN]
150 PRINT"Debout paresseux !" [RETURN]
160 PRINT [RETURN]
170 PRINT" P. Verlaine" [RETURN]
run [RETURN]
... vous pouvez constater qu'un certain nombre de lignes reviennent plusieurs fois, comme le vers de la ligne 190 et celui de la ligne 210. Créons deux sous-programmes pour les vers, sans oublier RETURN à la fin. Ainsi, nous pouvons appeler les sous-programmes à l'aide de la commande GOSUB 190 et GOSUB 210 chaque fois que nous voulons utiliser le vers. Le programme prend alors cet aspect :
10 MODE 2 [RETURN]
20 GOSUB 190 [RETURN]
30 PRINT "Noire dans le gris du soir," [RETURN]
40 GOSUB 190 [RETURN]
50 PRINT "Grise dans le noir." [RETURN]
60 PRINT [RETURN]
70 GOSUB 210 [RETURN]
80 PRINT "Il fait noir comme en un four" [RETURN]
90 GOSUB 210 [RETURN]
100 PRINT "Tiens, le petit jour !" [RETURN]
110 PRINT [RETURN]
120 GOSUB 190 [RETURN]
130 PRINT "Rose dans les rayons bleus," [RETURN]
140 GOSUB 190 [RETURN]
150 PRINT "Debout paresseux !" [RETURN]
160 PRINT [RETURN]
170 PRINT "P. Verlaine" [RETURN]
180 END [RETURN]
190 PRINT "Dame souris trotte," [RETURN]
200 RETURN [RETURN]
210 PRINT "Un nuage pass," [RETURN]
220 RETURN [RETURN]
run [RETURN]
Nous avons ainsi gagné un temps précieux! Les sous-programmes bien pensés sont une partie essentielle de la programmation. Ils débouchent sur des programmes « structurés » et sont un bon réflexe de programmation.
Lorsque vous créez des sous-programmes, rappelez-vous qu’il vous est possible d’avoir plusieurs points d’entrée. Par exemple, un sous-programme occupant les lignes 500 à 800 pourra très bien être abordé au point 500 (GOSUB500), 640 (GOSUB640) ou 790 (GOSUB790).
Notez l'importance de l'instruction END à la ligne 180. Sans elle, le programme continuait après la ligne 170 et executerait la ligne 190, qui ne doit l'être que par l'intermédiaire d'un GOSUB.
Arithmétique simple
Voir ordinateur peut facilement vous servir de calculatrice. Pour en assimiler le fonctionnement, nous vous proposons les exercices suivants. La réponse sera affichée aussitôt que la touche [RETURN] sera frappée.
Addition
(useitez [SHIFT] et :)
Tapez:
?3+3 [RETURN] 6
(Vous n'avez PAS à taper le signe =)
Tapez:
?8+4 [RETURN] 12
Soustraction
(Utilisez = pour moins)
Tapez:
24-3 [RETURN] 1
Tapez:
?8-4 [RETURN] 4
Multiplication
(Utilisez [SHIFT] et : pour multiplier (* signifie x))
Tapez :
?3\$3 [RETURN] 9
Tapez:
28*4 [RETURN] 32
Division
(Utilisez / pour diviser sans appuyer sur [SHIFT]).
Tapez:
?3/3 [RETURN] 1
Tapez:
?B/4 [RETURN] 2
Division entière
(Utilisez la barre \ pour diviser avec suppression du reste)
Tapez :
?10\6 [RETURN] 1
Tapez:
2203 [RETURN] 6
Modulo
(Utilisez MOD pour obtenir le reste d'une division entière)
Tapez:
210 MOD 4 [RETURN] 2
Tapez:
?9 MOD 3 [RETURN]
Racine carrée
Pour couvrir la racine carrée d'un nombre, utilisez sqr(). Le nombre dont on peut extraire la racine doit être entre parenthèses.
Tapez:
?sqr(16) [RETURN] (cecivut dire 16)
Tapez:
?sqr (180) [RETURN] 10
Puisances
(Utilisez le signe )
Exemples de puissances: 3 2 (3 au carré), 3 3 (3 au cube), etc.
Tapez:
3+3 [RETURN] (c'est-à-dire 3^5 27)
Tapez:
28+4 [RETURN] (ceci vout dire 84) 4096
Racines cubiques
Vous pouvez facilement calculer les racines cubiques en adoptant la méthode ci-dessus:
Pour trouver la racine cubique de 27 (3√ 27)
Tapez:
27↑(1/3) [RETURN]
Pour trouver la racine cubique de 125
Tapez:
Les calculs mélangeant addition, multiplication, etc., sont compris par l'ordinateur, mais il faut faire attention à la priorité des opérateurs.
La priorité va à la multiplication, suivie de la division, de l'addition et enfin de la soustraction. Il existe cependant d'autres opérateurs dotés de priorités différentes.
Soit le calcul :
$$ 3 + 7 - 2 \times 7 / 4 $$
On pourrait penser qu'il se fait de la manière suivante:
$$ \begin{array}{l} 3 + 7 - 2 \quad 8 7 / 4 \ = 8 1 7 / 4 \ = 5 6 / 4 \ = 1 4 \ \end{array} $$
La réalité est pourtant :
$$ \begin{array}{l} 3 + 7 - 2 \times 7 / 4 \ = 3 + 7 - 1 4 / 4 \ = 3 + 7 - 3. 5 \ = 1 0 - 3. 5 \ = 6. 5 \ \end{array} $$
Pour le constater, il suffit de le taper:
$$ \begin{array}{l} 3 + 7 - 2 * 7 / 4 [ R E T U R N ] \ 6. 5 \ \end{array} $$
On peut changer la manière dont l'ordinateur calcule en ajoutant des parenthèses, affectant la priorité aux opérateurs qu'elles contiennent. Par exemple:
$$ \begin{array}{l} (3 + 7 - 2) \cdot 7 / 4 [ Return ] \\ \sharp 4 \\ \end{array} $$
Ordre de priorité de tous les opérateurs mathématiques :
Élevation à la puissance
MOD Modulo
Moins uneire (donne le négatif d'un nombre)
- et / Multiplication et division
Division entière
- et - Addition et soustraction
Encore des puissances...
Quand on peut se servir de très grands ou très petits nombres dans les calculs, il est possible d'augmenter le nombre. Le résultat est utilisé en informatique pour les exposants des nombres en base 10. Vous êtes libre de taper E ou e, sans oublier que pour certains mathématiciens, e peut avoir un sens différent dans les logarithmes népériens.
Ainsi, 300 est égal à 3 × 10^2. En notation scientifique, on écrit 3E2. De même, 0.03 est égal à 3 × 10^-2. On écrit 3E-2. Essayez les exemples suivants.
Tapez:
30#10 [RETURN]
ou bien :
?3E1*1E1 [RETURN]
230001000 [RETURN]... ou... ?3E31E3 [RETURN]
300000
3000*0.001 [RETURN]. ou... 3E3*1E-3 [RETURN]
Partie 7: sauvegarde
Maintenant que vous savez taper quelques instructions, vous avez sûrement très envie de sauvegarder vos programmes sur disquettes et les charger dans l'ordinateur à partir de ces mêmes disquettes.
Même si vous savez déjà sauvegarder et charger des programmes sur cassette, vous devez assimiler quelques notions supplémentaires pour effectuer les mêmes opérations sur disquette. Il existe essentiellement deux différences.
Vous ne pouvez pas utiliser une disquette vierge comme vous le feriez pour une cassette. La disquette doit tout d'abord être formatée.
Vous devez « nommer » vos fichiers disque correctement. Si les noms de fichiers sur cassette obéissent à des règles très floues, ceux sur disquette doivent au contraire se conformer strictement aux normes CP/M, détailées plus loin dans ce chapitre.
Formatage des disquettes
Avant d'écrire des données sur une disquette vierge, il faut commencer par la formater. Le formatage peut être vu comme la construction d'une série d'étagères dotées de compartiments pour le stockage des informations - en d'autres mots, une structure capable de stocker et de restituer des données.
Le formatage partage chaque face de la disquette en 360 zones distinctes :

La disquette comporte 40 pistes, depuis la piste 0 (extérieure) jusqu'à la piste 39 (intérieure). Chaque piste se divise en 9 secteurs.
Chaque secteur, quelle que soit la piste, peut contenir 512 octets de données, soit 180 Koctets d'espace disponible sur chaque face de la disquette.
Premières étapes pour l'utilisation des disquettes système cp/m
Avant d'utiliser une disquette vierge pour l'écriture et la lecture de vos programmes, formatez-la à l'aide de la face 1 d'une des disquettes CP/M.
Allumez votre système et insérez la face 1 d'une des disquettes CP/M dans l'unité.
S'il s'agit d'un système à 2 unités, insérez la disquette CP/M dans l'unité principale (Unité A).
Puis tapez :
icpm [RETURN]
(La barre verticale s'obtient avec les touches [SHIFT] et @).
Après quelques secondes, le message suivant apparait sur l'écran :
CP/M Plus Amstrad Consumer Electronics plc
Ce symbole indique que le système est passé sous le contrôle de CP/M Plus.
Le symbole A > à l'écran est l'équivalent du Ready sous BASIC. Il indique que l'ordinateur est prêt à recevoir vos instructions.
Une fois sous CP/M, les instructions BASIC ne sont plus comprises par l'ordinateur.
Si vous tapez par exemple la commande BASIC:
c1s [RETURN]
... l'ordinaire répond en repétant le mot incompris, suivi d'un point d'interrogation : CLS?
... montrant ainsi qu'il ne comprend pas votre commande.
Abordons maintenant quelques commandes de CP/M. Tapez :
dir [RETURN]
Vous allez voir apparaître le catalogue des COMmandes et utilisables du CP/M. L'un d'eux est DISCKIT3. Tapez :
disckit3
Au bout de quelques secondes, le message initial du DISC KIT s'affiche en haut de l'écran, suivi de :
Une unité trouvée
indiquant que vous exploitez l'utilitaire DISC KIT et que l'ordinateur a reconnu l'utilisation du système avec une seule unité de disquettes (elle qui est intégrée à l'ordinateur).
Si votre système comprend une unité supplémentaire, le message affiché sera :
Vous verrez alors au bas de l'écran
copy
Format
Verify
Sortir du programme
| 7 | |
| 4 | |
| 1 | |
| 0 |
Il s'agit du menu principal du DISC KIT. Les numéros inscrits dans les cases correspondent aux touches de fonction situées à droite du clavier (fØ, f1, f4 et f7). Faites votre sélection à l'aide de la touche voulue.
Appuyer sur la touche de fonction f, à ce stade des opérations, vous fait sortir du programme DISC KIT pour vous ramener sous le système CP/M (message A>
Puisque nous voulons formater une disquette, appuyez sur f4.
Attention
LE FORMATAGE D'UNE DISQUETTE DEJA ENREGISTREE ENTRAINERA L'EFFACEMENT DE SON CONTENU.
Un nouveau menu apparaît alors vous proposant plusieurs formats :
System format
Data format
Vendor format
Exit menu
| 9 |
| 6 |
| 3 |
| . |
Comme précédemment, vous allez appuyer sur une des touches de fonctions (f3, f6 ou f9) pour sélectionner le type de format souhaité. Nous reviendrons par la suite sur ces différents formats ; pour le moment, choisissons le format Data, soit la touche f6.
Appuyer sur la touche, située sous f3, f6 et f9, vous fait sortir du mode Format pour vous ramener au menu DISC KIT.
Après sélection de la touche de fonction 6 (en supposant que votre système ne possède qu'une seule unité de disquette), vous recevez à l'écran le message :

Format as Data
Vous devez alors retirer la disquette système CP/M et insérer la disquette concernée, la face à formater tournée vers le haut.
Tapez Y (pour « oui », à savoir, « poursuivre et formater la disquette »).
Le formatage de la disquette s'effectue, piste par piste (de 0 à 39), et le nombre de la piste en cours de formatage s'affiche dans l'angle supérieur gauche de l'écran.
Vous ne pouvez pas formater une disquette dont le trou de protection en écriture est ouvert. Si vous tentez de le faire, le message ci-dessous vous est adressé:
... Tapez alors C pour annuler. Retirez la disquette et insérez-en une autre formatable.
Veillez à ne jamais fermer le trou de protection en écriture d'une disquette dont vous souhaitez conserver le contenu. C'est NOTAMMENT le cas des disquettes système CP/M.
Une fois le formatage terminé, l'ordinateur vous demande de retirer la disquette et d'appuyer sur une touche quelconque du clavier pour poursuivre.
Après quoi vous pouvez insérer une autre disquette à formater et appuyer de nouveau sur Y. Vous avez la possibilité de répéter cette opération autant de fois que vous le désirez.
Après formatage de toutes vos disquettes, appuyez sur une touche quelconque (à l'exception de la touche Y) pour revenir au menu principal du DISC KIT.
Nous aborderons les options Copy et Verify ultérieurement. Pour l'heure, maintenant que nous savons formater sous CP/M, nous allons réinitialiser l'ordinateur à l'aide des touches [CONTROL], [SHIFT] et [ESC].
Gardez tous une copie de vos disquettes CP/M en lieu sûr car elles sont la clé de voûte de votre système. Nous vous montrerons par la suite comment faire une copie de travail de ces précieuses disquettes de façon à pouvoir les mettre de côté soigneusement.
Formatage des disquettes dans un système à deux unités
Suivez les instructions ci-dessus, sélectionnez l'option Format du menu principal du DISC KIT en appuyant sur la touche de fonction f4, puis sélectionnez Data format au moyen de la touche f6.
Vous verrez alors s'afficher un troisième menu d'options, portant sur le choix de l'unité à partir de laquelle vous procéderez au formatage :
Format A:
Format B:
Exit menu

La sélection de l'option Format B (touche f5), vous permettra de laisser votre disquette système dans l'unité A (face 1 vers le haut) ; vous placerez donc la disquette à formater dans l'unité B.
Tapez alors Y pour procéder au formatage, ou sur une autre touche pour revenir au menu principal du DISC KIT.
Si vous avez sélectionné l'option Format A (touche f8) vous DEVEZ retirer la disquette système de l'unité A et la remplacer par la disquette à formater.
N'OUBLIEZ JAMAIS DE PROTEGER LES DISQUETTES SYSTEME CONTRE UN ECRASMENT ACCIDENTEL DES DONNEES QU'ELLES CONTIENNENT.
Maintenant que nous avons formaté une disquette vierge (ou deux), nous pouvons commencer à expérimenter les commandes de gestion des disquettes propres au BASIC.
Sauvegarde d'un programme sur disquette
Vous avez tapé un programme dans la mémoire de l'ordinateur. Vous voulez le sauvegarder sur disquette. Tapez:
save "nomfich" [RETURN]
Remarquez que vous devez un nom à votre programme.
Un nom de fichier sur disquette se compose de deux parties ou zones. La première, obligatoire, peut contenir jusqu'à 8 caractères, lettres ou nombres (les espaces et les signes de ponctuation sont interdits). Cette première zone contient généralement le nom du programme.
La deuxième zone, facultative, peut contenir jusqu'à trois caractères, mais cette fois encore ni espace ni signe de ponctuation. Ces deux parties sont séparées par un point.
En l'absence d'une deuxième zone spécifiée, le système en désigne une par défaut : BAS pour les fichiers BASIC ou BIN pour les fichiers binaires (en code machine).
Comme exemple de sauvegarde sur disquette, écrivez un petit programme dans la mémoire de l'ordinateur, insérez une disquette formatée dans l'unité et tapez :
save "example" [RETURN]
Après quelques secondes, le message Ready apparait sur l'écran, le programme est maintenant sauvégardé sur la disquette. (Dans le cas contraire, vérifie ce que dit le message d'erreur sur l'écran. La disquette peut ne pas avoir été insérée dans la bonne unité ou le trou de protection en écriture peut être ouvert, ou encore la commande avoir été mal écrite).
Catalogue
Après la sauvegarde du programme précédent, tapez :
cat [RETURN]
Vous verrez apparaître :
Drive A: Utilisateur 0
EXAMPLE. BAS 1K
177k free
Le nom du programme sera affiché avec ses deux zones, la deuxième ayant été spécifiée ou non, ainsi que la longueur du programme (arrondie au Ko supérieur). L'espace libre total du disque sera également affiché.
Chargement d'un programme sur disquette
Les programmes sur disquette sont chargés dans la mémoire de l'ordinateur à l'aide de la commande :
load "nomfich" [RETURN]
run [RETURN]
... ou pour un démarrage immédiat : Renvoie
run "nomfich" [RETURN]
Notez au passage que run est la seule commande permettant d'exécuter des programmes protégés.
Avec un système à deux unités de disquette, vous devez spécifier l'unité (A ou B) sur laquelle vous désirez exécuter une fonction. Tapez pour cela :
: a [RETURN]
... ou:
b [RETURN]
... avant d'entrer les commandes SAVE, CAT ou LOAD.
Copie de programmes de disquette à disquette
En utilisant les commandes déjà abordées dans ce chapitre, vous constaterez que l'on peut copier un programme d'une disquette (source) sur une autre, en le chargeant d'abord dans la mémoire de l'ordinateur puis en le sauvegardant sur l'autre disquette (disquette destination).
Si vous utilisez un système à deux unités, vous pouvez insérer la disquette avec le programme à charger dans une unité, B par exemple, et la disquette qui reçoit le programme dans l'autre unité, A par conséquent; ce qui donne :
!b [RETURN]
load "nomfich" [RETURN]
!a [RETURN]
save "nomfich" [RETURN]
Outre la méthode habituelle de sauvegarde de fichiers BASIC, vous disposez de quatre autres méthodes de sauvegarde de fichiers:
run "nomfich" [RETURN]
... il en existe trois autres destinées à des applications plus spécialisées.
Fichiers ASCII
save "nomfich", a [RETURN]
Le suffixe, a demande à l'ordinateur de sauvegarder le programme ou les données sous la forme d'un fichier de texte ASCII. Cette méthode de sauvegarde s'applique aux fichiers de traitement de texte et à d'autres programmes d'application. Son utilisation sera abordée ultérieurement avec les applications concernées.
Fichiers protégés
save "nomfich", p [RETURN]
Le suffixe p demande à l'ordinateur de protéger le programme, c'est-à-dire d'interdire son listage après chargement ou son interruption, par la touche [ESC], après démarriage.
Les programmes sauvégardés de cette façon ne peuvent être lancés que directement, à l'aide des commandes:
sauve "nonfich" [RETURN]
... ou:
chaîne "nomfich" [RETURN]
Si vous prévoyez de modifier un programme, il est indispensable d'en garder une copie sous forme non protégée, donc sans le suffixe «. p »
Fichiers binaires
save "nomfich", b,, < nombre d'octets> [, < point d'entrée éventuel>] [RETURN]
Cette option permet d'effectuer une sauvegarde binaire qui provoque le stockage de blocs entiers de données de la RAM sur la disquette, tels qu'ils apparaissent dans la mémoire. Il est nécessaire dans ce cas d'indiquer à l'ordinateur le début de la zone mémoire à sauvegarder, sa longueur et, s'il s'agit d'un programme, l'adresse mémoire à partir de laquelle le fichier doit s'exécuter.
Vidage d'écran
Cette sauvegarde binaire permet de stocker directement sur disquette les données de la mémoire écran sous forme d'un vidage d'écran. Le contenu de l'écran est alors sauvegardé tel qu'il apparait à l'affichage, à l'aide de la commande :
save "pageocran", b,49152,16384 [RETURN]
49152 est l'adresse de départ de la mémoire écran et 16384 indique la longueur de mémoire écran que vous désirez sauvegarder.
Pour rappeler ces données à l'écran, tapez :
load "pagecran" [RETURN]
Vous trouverez plus loin dans le manuel des informations complémentaires sur la manipulation des fichiers programme entre disquettes/cassettes.
Enfin, assurez-vous que vous avez bien respecté les vérifications indiquées dans la rubrique « IMPORTANT »:
REMARQUES RELATIVES À L'INSTALLATION: 5, 6 et 7. REMARQUES RELATIVES AU FONCTIONNEMENT: 1, 2, 3, 4, 5, 6, 7 et 9.
Partie 8: modes couleurs et graphiques
L'ordinateur personnel Amstrad 6128 dispose de trois modes d'affichage à l'écran : Mode 0, Mode 1 et Mode 2.
À la mise sous tension, l'ordinateur est automatiquement en mode 1.
Pour comprendre le système des modes, appuyez, après la mise en route, sur la touche numérique 1. Maintenez-la enfoncée jusqu'à obtenir deux lignes pleines de 1. Si vous comptez le nombre de 1 d'une ligne, vous verrez qu'il y en a 40 : en Mode 1, il y a 40 colonnes. Appuyez sur [RETURN], vous aurez le message « Syntax Error ». Ne vous inquiétez pas, nous avons simplement pris le plus court chemin pour revenir au message Ready.
Tapez alors :
Mode 0 [RETURN]
Vous voyez que les caractères sur l'écran sont plus larges. Appuyez sur le chiffre 1 pour avoir deux lignes pleines de 1. Vous en décomptez 20 par ligne. Il y a donc 20 colonnes en Mode 0. Appuyez sur [RETURN] de nouveau.
Et tapez :
Mode 2 [RETURN]
L'écriture est plus petite dans ce mode; une ligne en comprendra 80. Il y a donc 80 colonnes en Mode 2.
En résumé :
Mode 0 = 20 colonnes
Mode 1 = 40 colonnes
Mode 2 = 80 colonnes
Tapez [RETURN] une fois de plus.
Couleurs
Vous avez le choix entre 27 couleurs. Sur un moniteur vert, elles apparaissent en camaïeuS de vert. Si vous disposez du moniteur vert GT65, vous pouvez acheter l'adaptateur Peritel pour vous servir de votre téléviseur couleur.
En Mode 0, on peut avoir 16 couleurs en même temps à l'écran. En Mode 1, on peut en avoir 4. En Mode 2, on peut en avoir 2.
Il est possible de changer la couleur de la bordure du cadre extérieur, appelée BORDER, la couleur de l'espace d'écriture appelé PAPER et la couleur du stylo, appelé PEN (c'est-à-dire la couleur des caractères), indépendamment les unes des autres.
Les 27 couleurs disponibles sont indiquées dans le Tableau 1, chacune avec le numéro de référence de la couleur (INK = encre).
Pour plus de commodité, ce tableau (version anglaise) figure en haut à droite de l'ordinateur.
Tableau des couleurs Tableau 1: Les numéros d'encre (INK) et les couleurs
| INK No | Couleur de l'encre | INK No | Couleur de l'encre |
| 0 | Noir | 14 | Bleu Pastel |
| 1 | Bleu | 15 | Orange |
| 2 | Bleu Vif | 16 | Rose |
| 3 | Rouge | 17 | Magenta Pastel |
| 4 | Magenta | 18 | Vert Vif |
| 5 | Mauve | 19 | Vert Marin |
| 6 | Rouge Vif | 20 | Turquoise Vif |
| 7 | Violet | 21 | Vert Citron |
| 8 | Magenta Vif | 22 | Vert Pastel |
| 9 | Vert | 23 | Turquoise Pastel |
| 10 | Turquoise | 24 | Jaune Vif |
| 11 | Bleu Ciel | 25 | Jaune Pastel |
| 12 | Jaune | 26 | Blanc Brilliant |
| 13 | Blanc |
Comme nous le disions auparavant, l'ordinateur est en mode 1 à l'origine. Pour y revenir à partir d'un autre mode, tapez :
Configuration de l'écran

BORDER est le cadre entourant la zone d'écriture ou PAPER. (Au départ, BORDER et PAPER sont bleus tous les deux). Les caractères affichés apparaissent toujours à l'intérieur du cadre. PAPER désigne le fond sur lequel ils s'affichent. Le stylo (PEN) colore les caractères.
Nous allons maintenant aborder la sélection des couleurs affichées à l'écran et la façon de les modifier.
À la mise sous tension ou lors d'une réinitialisation, le cadre est toujours de la couleur numéro 1. En consultant le tableau 1, vous constaterez que c'est la couleur bleue. Pour modifier la couleur du cadre, utilisez la commande : BORDER suivie du numéro de la couleur sélectionnée. Pour un cadre blanc, tapez :
Pour l'instant, pas de problème. Compliquons un peu l'exercice...
À la mise sous tension ou à la réinitialisation, les numéros PAPER et PEN sont automatiquement sélectionnés : PAPER = 0, PEN = 1. Mais ceci ne veut PAS dire pour autant que les couleurs du papier et du stylo sont celles du tableau 1...
En effet, PAPER 0 et PEN 1 ne sont pas des paramètres de couleur. Imagine que vous disposiez de 4 stylos numérotés de 0 à 3 et que, pour chacun d'entre eux, vous ayez le choix entre 27 couleurs d'encre, numérotées de 0 à 26. Vous voyez donc que le stylo numéro 1 peut prendre plusieurs couleurs. Libre à vous, bien entendu, de choisir la même couleur d'encre pour les quatre stylos.
C'est ce qui se passe avec l'ordinateur. A l'aide des commandes PEN et INK, vous pouvez sélectionner le stylo qui vous intéresse et sa couleur d'encre.
En vous rappelant que vous opérez en Mode 1 (40 colonnes), consultez le tableau 2 ci-dessous et vous verrez dans la première et la troisième colonne que le stylo numéro 1 correspond à la couleur numéro 24. Si vous reportez au tableau 1, vous constaterez que la couleur numéro 24 est jaune vif; c'est bien la couleur des caractères affichés à la mise sous tension.
Couleurs par défaut Tableau 2. Récurrence PAPER/PEN/MODE/INK
| N° de Papier/stylo | Mode 0 Couleur d'encre | Mode 1 Couleur d'encre | Mode 2 Couleur d'encre |
| 0 | 1 | 1 | 1 |
| 1 | 24 | 24 | 24 |
| 2 | 20 | 20 | 1 |
| 3 | 6 | 6 | 24 |
| 4 | 26 | 1 | 1 |
| 5 | 0 | 24 | 24 |
| 6 | 2 | 20 | 1 |
| 7 | 8 | 6 | 24 |
| 8 | 10 | 1 | 1 |
| 9 | 12 | 24 | 24 |
| 10 | 14 | 20 | 1 |
| 11 | 16 | 6 | 24 |
| 12 | 18 | 1 | 1 |
| 13 | 22 | 24 | 24 |
| 14 | clignotement1,24 | 20 | 1 |
| 15 | clignotement16,11 | 6 | 24 |
Attention! Les correspondances PAPER/PEN/INK indiquées au tableau 2 ne sont pas fixes. En effet, il ne s'agit là que des couleurs par défaut, sélectionnées à la mise sous tension et à la réinitialisation de l'ordinateur. Vous pouvez les modifier à l'aide de la commande INK, constituée de deux paramètres, le premier pour le numéro du papier ou du stylo et le second pour le numéro de la couleur d'encre. Une virgule sépare ces deux paramètres.
Sachant que le stylo numéro 1 est sélectionné, nous allons changer sa couleur d'encre pour obtenir des caractères oranges.
Tapez:
ink 1,15 [RETURN]
... les caractères affichés ont effectivement changé de couleur.
La commande INK sert aussi à modifier la couleur du fond. Le premier numéro 0 est sélectionné à la mise sous tension; nous allons modifier sa couleur pour obtenir un papier numéro 0 de couleur verte (numero 9):
INK 0,9 [RETURN]
Changeons maintenant de stylo :
pen 3 [RETURN]
Vous remarquerez alors que seuls les nouveaux caractères (tapés après la commande) changent de couleur. Avec le stylo numéro 3, la couleur d'encre initiale est rouge vif (numéro 6, tableau 2). Passons à la couleur rose en tapant :
ink 3,16 [RETURN]
3 est le paramètre du stylo sélectionné précédemment par la commande : pen 3, et 16 correspond à la couleur d'encre rose.
Changeons maintenant le papier (fond sur lequel s'afficheront les caractères). Lorsque vous sélectionnez un nouveau papier, la couleur du fond ne change que pour les caractères affichés après l'exécution de cette commande. Tapez :
Cette fois encore, vérifie sur les tableaux 1 et 2 que le numéro 2 de PAPER correspond à un fond turquoise vif. Colorez-le en noir en tapant :
L'écran affiche maintenant des caractères écrits avec les stylos 1 et 3 sur des fonds 0 et 2. Vous pouvez sélectionner des couleurs INK de stylo et papier, que vous n'êtes pas en train d'utiliser. Tapez par exemple :
Les caractères déjà tapés avec le stylo 1 changent de couleur.
Tapez:
... pour effacer l'écran.
Vous devez être à même de revenir aux couleurs d'origine (cadre et fond bleus, caractères jaunes vif) à l'aide des commandes BORDER, PAPER, PEN et INK. Essayez. Si vous n'y parvenez pas, réinitialisez l'ordinateur à l'aide des touches [CONTROL], [SHIFT] et [ESC].
Couleurs clignotantes (flash)
On peut faire alterner les caractères d'une couleur à l'autre en utilisant un autre numéro de couleur pour la définition INK de la commande PEN.
La couleur des caractères va changer rapidement entre le blanc brillant et le rouge vif. Réinitialisé à l'aide des touches [CONTROL], [SHIFT], [ESC] et tapez :
ink 1,26,6 [RETURN]
1 correspond au nombre du stylo (PEN). 26 au blanc brillant et 6 à la couleur qu'il va prendre, rouge vif.
Il est également possible de faire clignoter le fond PAPER d'une couleur à l'autre. Vous nevez alors ajouter à la commande INK un nombre de couleur supplémentaire.
Pour faire clignoter PAPER entre vert et jaune vif, tapez:
ink 0,9,24 [RETURN]
o correspond au numéro du papier PAPER, 9 au vert et 24 au jaune vif.
Réinitialisez à l'aide des touches [CONTROL] [SHIFT] [ESC].
Le tableau 2 vous montre qu'en mode 0, deux des numéros de PEN (numéros 14 et 15) ou de PAPER (numéros 14 et 15) représentent les couleurs clignotantes d'origine. Autrement dit, leurs commandes INK ont été préprogrammées avec un paramètre de couleur supplémentaire.
On le constate en faisant:
mode 0 [RETURN] pen 15 [RETURN]
... afin que le mot Ready alterne entre bleu ciel et rose! Si vous faites ensuite :
paper 14 [RETURN] cls [RETURN]
... outre Ready clignotant entre bleu ciel et rose, le fond de PAPER alterne maintenant entre jaune et bleu.
Les nombres de stylo et papier 14 et 15 peuvent être reprogrammés par la commande INK, pour obtenir d'autres couleurs intermittentes ou une couleur fixe.
Enfin, on peut faire clignoter la couleur du cadre en ajoutant un autre numéro de couleur à la commande BORDER.
Par example :
border 6,9 [RETURN]
La couleur du cadre alterne du rouge vif au vert. Pour le cadre, vous avez le choix entre une ou deux couleurs parmi les 27 disponibles, quel que soit le mode de fonctionnement 0, 1 ou 2.
Réinitialisez l'ordinateur à l'aide des touches [CONTROL] [SHIFT] [ESC].
Pour voir ce qu'il est possible de faire avec les couleurs, tapez ce programme et lancez-le (run).
10 MODE 0 [RETURN] 20 vitesse = 600 : REM Determine la vitesse du programme [RETURN] 30 FOR b TO 26 [RETURN] 40 LOCATE 1,12 [RETURN] 50 BORDER b [RETURN] 60 PRINT"COULEUR DU CADRE"; b [RETURN] 70 FOR t TO vitesse [RETURN] 80 NEXT t, b [RETURN] 90 CLG [RETURN] 100 FOR p TO 15 [RETURN] 110 PAPER p [RETURN] 120 PRINT"PAPIER"; p [RETURN] 130 FOR n TO 15 [RETURN] 140 PEN n [RETURN] 150 PRINT"STYLO"; n [RETURN] 160 NEXT n [RETURN] 170 FOR t TO vitesse*2 [RETURN] 180 NEXT t, p [RETURN] 190 MODE 1 [RETURN] 200 BORDER 1 [RETURN] 210 PAPER 0 [RETURN] 220 PEN 1 [RETURN] 230 INK 0,1 [RETURN] 240 INK 1,24 [RETURN]
Important
Dans ce programme, comme dans les chapitres suivants et les listages du manuel, les mots clés du BASIC apparaissent en majuscules. Ils s'affichent ainsi sur la demande d'une instruction LIST. Il est généralement préférible de taper les instructions et les programmes en minuscules pour détecter les erreurs de frappe lors des listages des programmes (les mots clés mal orthographiés ne sont alors pas convertis en majuscules).
Jusqu'à la fin de ce cours élémentaire, les programmes sont listés en majuscules et en minuscules afin de vous familiariser avec ce procédé.
Un nom de variable, x ou $ par exemple, ne sera pas converti en majuscule lors du LISTage du programme, bien qu'il soit reconnu par le programme de toute façon.
Attention
À partir de maintenant, nous ne préciserons plus de taper [RETURN] à la fin de chaque ligne. Nous supposons que vous en avez pris le réflexe.
Graphiques
Il y a un certain nombre de caractères dans la mémoire de l'ordinateur. Pour afficher l'un de ces caractères, on utilise le mot clé : CHR$ ( )
chr$ ( )
Entre les parenthèses, on entre le numéro du symbole (entre 32 et 255).
Faites [CONTROL], [SHIFT] et [ESC] pour la remise à zéro, puis tapez :
printchr(250)
N'oubliez pas d'appuyer sur [RETURN]. Sur l'écran apparait le caractère N° 250, qui représenté un homme marchant vers la droite.
Pour afficher tous les caractères et symboles avec leurs numéros, tapez le programme suivant, en n'oubliant pas d'appuyer sur [RETURN] après chaque ligne.
10 FOR n=32 TO 255 2 PRINT n; CHR$(n); 30 NEXT n run
Vous trouverez au chapitre « Pour information... » tous les caractères associés de leurs nombres.
LOCATE (place le curseur)
On se sert dc cette commande pourmettre le curseur a un certain endroit de I'ecran. Sans la commande LOCATE, le curseur se trouve en haut et a gauche de I'ecran, ce qui correspond en coordonnées x, y a 1.1 (x etant la position horizontalc, y la position verticale). En Mode 1, il y a 40 colonnes et 25 lignes. Pour placer un caractere en haut au milieu de I'ecran, il faut indiquer x = 20 et y = 1 Essayons:
Mode 1... l'écran s'efface ; le curseur se trouve en haut, à gauche.
10LOCATE 20,1 20 PRINT CHR(250) run
Pour vérifier qu'il s'agit bien du haut de l'écran, tapez :
border 8
Le cadre sera noir et vous verrez le petit bonhomme au milieu de la ligne supérieure.
En Mode 0, il n'y a que 20 colonnes, mais toujours 25 lignes. Si vous tapez :
mode 0 run
... le bonhomme apparait en haut à droite de l'écran, car la 20ème colonne est la dernière du mode 0.
En mode 2, il y a 80 colonnes et 25 lignes. A l'aide du même programme, vous devinez certainement où va apparaître le petit bonhomme. Tapez:
mode 2 run
Revenez au Mode 1, en faisant :
mode 1
A vous maintenant de faire varier les nombres après locate et dans CHR$(). Pour l'exemple, essayez:
locate 20,12: print chr$(240)
Veuillez une flèche au centre de l'écran. Dans cette instruction:
20 est la coordonnée horizontale (comprise entre 1 et 40) 12 est la coordonnée verticale (comprise entre 1 et 25) 240 est le numéro du caractère (compris entre 32 et 255)
Pour voir le caractère 250 répété sur l'écran, il suffit de taper :
10 CLS 20 FOR x=1 TO 39 30 LOCATE x,20 50 PRINT CHR$ (250) 60 NEXT x 70 GOTO 10 run
Faites [ESC] deux fois pour interrompre le déroulement.
Pour effacer le caractère précédent avant d'afficher le suivant, tapez :
58 PRINT " "; CHR$(250)
(La nouvelle ligne 50 remplace automatiquement la précédente).
Maintenant, tapez :
run
Pour que le mouvement du caractère soit plus joli, ajoutez la ligne suivante :
La commande FRAME synchronise le mouvement de l'objet affiché sur la fréquence de balayage de la trame d'affichage. Si cette notion vous paraît trop technique, rappelez-vous simplement que cette commande sert à déplacer harmonieusement sur l'écran des caractères ou des graphiques.
On peut encore améliorer ce programme en ajoutant des petites pauses et en utilisant d'autres caractères.
Pour ce faire, tapez :
list
Puis ajouter les lignes suivantes au programme :
70 FOR n=1 TO 300:NEXT n
80 FOR x=39 TO 1 STEP -1
90 LOCATE x,20
100 FRAME
110 PRINT CHR$(251);"
120 NEXT x
130 FOR n=1 TO 300:NEXT n
140 GOTO 20
run
PLOT (déterminer un point sur l'écran)
Contrôlelement à la commande LOCATE, PLOT sert à fixer la position du curseur graphique, utilisant les coordonnées des pixels (un pixel est la plus petite unité de l'écran).
Remarque: le curseur graphique, différent du curseur des caractères, n'est pas visible.
Il y a 640 pixels horizontalement sur 400 verticaux. Les coordonnées x et y sont définies par rapport au coin inférieur gauche de l'écran, qui a pour coordonnées 0,0. Contrairement à la commande LOCATE, appliquée aux caractères, ces coordonnées sont les mêmes en Mode 0, 1 ou 2.
L'ordinateur ayant été remis à zéro à l'aide de [CONTROL] [SHIFT] et [ESC], essayez :
plot 320,200
Un petit point apparait au centre de l'écran.
Changeons de mode en tapant:
mode 0 plat 320,200
Le point se trouve toujours au milieu de l'écran, mais agrandi. Changez à nouveau de mode et tapez la même commande pour voir le résultat en mode 2:
mode 2 plot 320,200
Le point est toujours au centre, mais beaucoup plus petit.
Essayez de dessiner des points sur l'écran avec les différents modes pour vous habituer à la commande PLOT. Revenez ensuite en Mode 1 et videz l'écran en tapant :
mode 1
DRAW (dessine une ligne)
Remise à zéro : [CONTROL] [SHIFT] et [ESC]. La commande DRAW dessine une ligne à partir de la position du curseur graphique. Pour mieux comprendre, dessinons un rectangle sur l'écran avec le programme suivant.
On commence par placer le curseur graphique avec la commande PLOT. Puis on dessine une ligne à partir de ce point, vers le coin supérieur gauche, puis vers la droite, etc... Tapez:
| 5 CLS | |
| 10 | PLOT 10,10 |
| 20 | DRAW 10,390 |
| 30 | DRAW 630,390 |
| 40 | DRAW 630,10 |
| 50 | DRAW 10,10 |
| 60 | GOTO 60 |
| run | |
Actionnez [ESC] deux fois pour sortir du programme.
(Dans ce programme, l'ordinateur boucle indéfiniment à la ligne 60 jusqu'à ce que vous l'interrompiez en appuyant deux fois sur la touche [ESC]. Ce type d'instruction évite l'interruption automatique du programme après la dernière ligne et l'affichage du message Ready).
Ajoutez maintenant les lignes suivantes pour dessiner un deuxième rectangle à l'intérieur du premier :
| 60 | PLOT | 20, 20 |
| 70 | DRAW | 20, 380 |
| 80 | DRAW | 620, 380 |
| 90 | DRAW | 620, 20 |
| 100 | DRAW | 20, 20 |
| 110 | GOTO | 110 |
| run |
Appuyez sur [ESC] deux fois pour sortir du programme.
La commande MOVE fonctionne comme PLOT, c'est-à-dire que le curseur graphique se place sur le point des coordonnées x, y sans tracer le pixel au nouvel emplacement du curseur.
Tapez:
| c1s |
| move 639,399 |
Bien que nous ne le voyons pas à l'écran, le curseur graphique se trouve maintenant dans l'angle supérieur droit.
Mettons cette position en évidence en traçant une ligne à partir de ce point vers le centre de l'écran. Tapez :
| draw 320,200 |
On peut dessiner des cercles à l'aide des commandes PLOT ou DRAW. Pour dessiner un cercle, vous pouvez placer les coordonnées x et y de chaque point de sa circonférence. Sur la figure suivante, un point « p » peut être placé avec la commande PLOT, en utilisant les coordonnées x et y.
$$ \begin{array}{l} x = 1 9 0 \text {c o s (a)} \ y = 1 9 0 \text {s i n (a)} \end{array} $$

Positionnement du centre d'un cercle
Dans les programmes précédents, on avait fixé le centre par rapport au coin inférieur gauche de l'écran. Pour tracer un cercle au milieu de l'écran, il faut placer son centre aux coordonnées 320 et 200, puis dessiner tous les points du cercle par rapport à ce centre en ajoutant les coordonnées de ce dernier. Voici un programme pour obtenir un cercle :
new
10 CLS
20 DEG
30 FOR a=1 TO 360
40 MOVE 320,200
50 DRAW 320+190\*COS(a),200+190\*SIN(a)
60 NEXT
run
Le mot clé NEW précédant l'entrée du programme remet la mémoire à zéro (comme une réinitialisation), sans toutefois effacer l'écran.
Le rayon du cercle peut être réduit en diminuant le nombre 190 (nombre de pixels).
Pour oblir un cercle déterminé d'une manière différente (en radians), enlevez la ligne 20 en tapant:
Pour dessiner un cercle plein (un disque) avec des lignes tracées à partir du centre, modifiez (EDIT) la ligne 50 en remplaçant le mot PLOT par le mot DRAW. Elle devient :
50 DRAW 320+190 COS(a),200+190 SIN(a)
Essayez maintenant avec et sans la ligne 20.
Notez que dans la ligne 60 de ce programme, NEXT n'est pas suivi de a. On peut mettre seulement NEXT : l'ordinateur détermine alors à quel FOR il se rapporte. Dans les programmes contenant de nombreux FOR et NEXT, il est toutefois préférable d'ajouter la variable après NEXT afin de s'y retrouver.
Dans le programme précédent, on s'est servi de la commande MOVE pour fixer le centre du cercle, puis on a ajouté les coordonnées x, y à celles du centre. Au lieu de cela, nous pouvons utiliser la commande ORIGIN (attention, pas de E à ORIGIN, c'est un mot réservé). Elle place les coordonnées x et y de chaque point en fonction d'ORIGIN. Verifions ceci avec le programme :
new 10CLS 20FOR a = 1 TO360 30ORIGIN320,200 40PLOT190*COS(a),190*SIN(a) 50NEXT run
Pour obtenir quatre petits cercles sur l'écran, entrons le programme suivant:
new 10CLS 20FOR = 1 70360 30ORIGIN196,282 40PLOT50*COS(a),50*SIN(a) 50ORIGIN442,282 60PLOT50*COS(a),50*SIN(a) 70ORIGIN196,116 80PLOT50*COS(a),50*SIN(a) 90ORIGIN442,116 100PLOT50*COS(a),50*SIN(a) 110NEXT run
Pour expérimenter une autre méthode de création d'un cercle, tapez le programme :
new
10 MODE 1
20 ORIGIN 320,200
30 DEG
40 MOVE 0,190
50 FOR a=TO 360 STEP 10
60 DRAW 190\*SIN(a),190\*COS(a)
70 NEXT
run
Cette fois, une ligne est tracée (DRAW) de coordonnée en coordonnée sur l'ensemble de la circonférence. Le tracé est nettement plus rapide que le positionnement des points.
Une fois encore, observez la conséquence du retrait de la commande DEG par suppression de la ligne 30 et relancez le programme.
La commande FILL sert à remplir une zone d'écran délimitée par une courbe, le bord de l'écran, ou d'une fenêtre graphique.
Réinitialisez à l'aide des touches [CONTROL] [SHIFT] et [ESC], puis tapez :
new
10CLS
20MOVE 20,20
30DRAW620,20
40DRAW310,380
50DRAW20,20
run
Un triangle apparait à l'écran. Placez le curseur graphique au centre de l'écran en tapant :
move 328,208
A l'aide du mot clé FILL suivi d'un numéro de stylo (3 par exemple), remplissez l'écran à partir de la position du curseur graphique (centre de l'écran) jusqu'aux limites tracées. Tapez:
fll 3
Amenez maintenant le curseur graphique à l'extérieur du triangle :
move 0,0
Observez ce qui se passe si vous tapez :
fill 2
À l'aide du stylo numéro 2, l'ordinateur a rempli la zone comprise entre les lignes tracées et les bords de l'écran.
Modifiez le programme et regardez ce qui se passe :
50 DRAW 50,50
60 MOVE 320,200
70FILL3
run
Toute interruption de lignes sur l'écran laisse « passer » la couleur du stylo.
Ce phénomène est illustré par le remplissage d'un cercle positionné à l'écran, puis d'un cercle tracé. Tapez :
new
CLS
20 FOR a = 1 TO 360
30 ORIGIN 320,200
40 PLOT 190*COS(a),190*SIN(a)
50 NEXT
60 MOVE -188,0
70FILL3
run
Tapez maintenant :
new
10 MODE 1
20 ORIGIN 320,200
30 DEG
40 MOVE 0,190
50 FOR d=TO 360 STEP 10
60 DRAW 190\*COS(d),190\*SIN(d)
70 NEXT
80 MOVE -188,0
90 FILL 3
run
Vous pouvez rendre la circonférence du cercle invisible en utilisant la même couleur pour le stylo et le papier. Ajoutez cette ligne :
45 GRAPHICS PEN 2: INK 2,1 run
La commande GRAPHICS PEN sélectionne le stylo pour le tracage des graphiques. La commande INK spécifie la couleur d'encre de ce stylo qui, en l'occurrence, est la même que celle du papier (ici, numéro de couleur 1).
Pour terminer, tapez ce programme de démonstration:
10 MODE 0: BORDER 13
20 MOVE 0,200:DRAW 640,200
30 FOR x=80 TO 560 STEP 90
40 MOVE x,0:DRAW x,400
50 NEXT:MOVE -40,300
60 FOR c=0 TO 7
70 MOVER 80,0:FILL c
80 MOVER 0,-200:FILL c+8
90 MOVER 0,200:NEXT
100 GOTO 100
run
Les couleurs des zones en plein peuvent être modifiées après leur remplissage. Tapez :
100 SPEED INK 30,38
110 BORDER RND$26
120 INK RND15,RND26,RND$26
130 FOR t=1 TO 500:NEXT:GOTO 110 run
Compléments d'information...
Consultez la partie « Graphiques » du chapitre « A vos heures de loisir... » pour un guide complet des possibilités graphiques du CPC664.
Pour terminer ce chapitre, voici quelques programmes de démonstration graphique intégrant des commandes et des méthodes désormais à votre portée. Chacun de ces programmes trace des motifs en continu.
new
10 BORDER 0:GRAPHICS PEN i
20 m=CINT (RND#2):MODE m
30 i1=RND*26:i2=RND*26
40 IF ABS(i1-i2)<10 THEN 30
50 INK 0,i1:INK 1,i2
60 s=RND*5+3:ORIGIN 320,-100
70 FOR x=-1000 TO 0 STEP s
80 MOVE 0,0:DRAW x,300:DRAW 0,600
90 MOVE 0,0:DRAW -x,300:DRAW 0,600
100 NEXT:FOR t=1 TO 2000:NEXT :GOTO 20
run
10 MODE 1:BORDER 0:PAFER 0
20 GRAPHICS PEN 2:INK 0,0
30 EVERY 2200 GOSUB 150
40 FLAG=0:CLG
50 INK 2,14+RND*12
60 B%=RND*5+1
70 C%=RND*5+1
80 ORIGIN 320,200
90 FOR A=O TO 1000 STEP PI/30
100 X%=100*COS(A)
110 MOVE X%.X%
120 DRAW 200*COS(A/B%),200*SIN(A/C%)
130 IF FLAG=i THEN 40
140 NEXT
150 FLAG=i:RETURN
run
10 MODE 1: BORDER 0:DEG
20 PRINT"VEUILLEZ PATIENTER "
30 FOR N=1 TO 3
40 INK 0,0:INK 1,26:INK 2,6:INK 3,18
50 IF N=1 THEN SA=120
60 IF N=2 THEN SA=135
70 IF N=3 THEN SA=150
80 IF N=1 THEN ORIGIN 0,-50,0,640,0,400 ELSE ORIGIN 0,0,0,64
90 DIM CX(5),CY(5),R(5),LC(5)
100 DIM NP(5)
110 DIM PXX(5,81),FXY(5,81)
120 ST=1:CX(1)=320:CY(1)=200;R(1)=80
130 FOR ST=1 TO 4
140 R(ST+1)=R(ST)/2
150 NEXT ST
160 FOR ST=1 TO 5
170 LC(ST)=0:NP(ST)=0
180 NP(ST)=NP(ST)+1
190 PXX(ST,NP(ST))=R(ST)*SIN(LC(ST))
200 PYX(ST,NP(ST))=R(ST)*COS(LC(ST))
210 LC(ST)=LC(ST)+360/R(ST)
220 IF LC(ST)<360 THEN 180
230 PXX(ST,NP(ST)+1)=PXX(ST,1)
240 PYX(ST,NP(ST)+1)=PYX(ST,1)
250 NEXT ST
260 CLS: CJ=RESTE(1): CJ=RESTE(2)
270 CJ=RESTE(3): INK 1,2:ST=1
280 GOSUB 350
290 LOCATE 1,1
300 EVERY 25,1 GOSUB 510
310 EVERY 15,2 GOSUB 550
320 EVERY 5,3 GOSUB 590
330 ERASE CX,CY,R,LC,NP,PXX,PYX:NEXT
340 GOTO 340
350 CXX=CX(ST):CYX=CY(ST):LC(ST)=#
360 FOR XX=1 TO NP(ST)
370 MOVE CXX,CYX
380 DRAW CXX+PXX(ST,XX),CYX+PYX(ST,XX),1+(ST MOD 3)
390 DRAW CXX+PXX(ST,XX+1),CYX+PYX(ST,XX+1),I+(ST MOD 3)
400 NEXT XX
410 IF ST=5 THEN RETURN
420 LC(ST)=#
430 CX(ST+1)=CX(ST)+1.5*R(ST)*SIN(SA+LC(ST))
440 CY(ST+1)=CY(ST)+1.5*R(ST)*COS(SA+LC(ST))
450 ST=ST+1
460 GOSUB 350
470 ST=ST-1
480 LC(ST)=LC(ST)+2*SA
490 IF (LC(ST) MOD 360) <> THEN 430
500 RETURN
510 1K(1) = 1 + RND25 520 IFIK(1) = IK(2)ORIK(1) = IK(3)$ THEN 510 530 INK 1, IK(1) 540 RETURN 550IK2=1+RND#25 560 IF IK(2) = IK(1) OR IK(2) =IK(3) THEN 550 570 INK 2, IK(2) 580 RETURN 590IK3=1+RND25 600 IF IK(3) = IK(1) OR IK(3) = IK(2) THEN 590 610 INK 3, IK(3) 620 RETURN
Partie 9 : utilisation des sons
Les effets sonores sont produits par un haut-parleur intégré à l'ordinateur. Si vous utilisez l'adaptateur Péritel et un poste TV, baissez le volume au minimum.
Le niveau sonore est réglé par le bouton VOLUME, placé sur le côté droit de l'ordinateur. Le son peut aussi passer par la prise STEREO de l'ordinateur à l'entrée auxiliaire de votre chaîne hi-fi. Vous pouvez ainsi écouter vos programmes sonores en stéréo sur vos haut-parleurs ou votre casque d'écoute. Consultez la partie 2 du Cours Elémentaire pour connecter le casque à la prise stéréo de l'ordinateur.
La commande SOUND
La commande du son, SOUND, comporte sept paramètres. Si les deux premiers doivent être précis, les autres sont facultatifs. La commande est écrite de la manière suivante :
SOUND <état de canal>,,,,,,.
D'apparence complexe, ces paramètres sont en fait faciles à identifier. Nous allons les étudier un par un.
Etat de canal
Pour plus de simplicité, nous allons provisoirement l'assimiler au canal sonore lui-même. Il existe trois canaux sonores et nous nous occuperons pour l'instant de l'état de canal numéro 1.
Période sonore
La concerne la définition technique de la hauteur de note : do, ré, mi, fa, sol, la, si. Chaque note est associée à un nombre représentant sa. En vous reportant au chapitre « Pour information... », vous verrez que la note do correspond à une période de 239.
Réinitialisez l'ordinateur [CONTROL] [SHIFT] et [ESC] puis tapez :
10 SOUND 1,239 run
Vous entendrez un do pendant 0,2 seconde.
Si vous ne percevez aucun son, assurez-vous que le volume de votre ordinateur n'est pas sur zéro. Tapez RUN une nouvelle fois.
Durée
Ce paramètre détermine la durée du son et s'exprime en centièmes de seconde. En l'absence de Specification, l'ordinateur fixe un chiffre de 20, soit 0,01 × 20, ce qui donne bien une durée de 0,2 seconde.
Pour faire durer la note une seconde, il faudra donc lui attribuer un paramètre de 100; pour 2 secondes, 200. Tapez:
10 SOUND 1,239,200 run
La même note do dure 2 secondes.
Volume
Ce paramètre détermine le volume de départ d'une note. Ce nombre varie de 0 à 15. 0 correspond au volume minimum et 15 au volume maximum. En l'absence de spécification, l'ordinateur fixe un chiffre de 12. Tapez:
10 SOUND 1,239,200,5 RUN
Remarquez le volume du son, puis tapez un numéro de volume supérieur:
10 SOUND 1,239,200,15 run
Vous devez obtenir un son plus fort.
Enveloppe de volume
Pour faire varier le volume d'un son pendant son émission, vous pouvez spécifier une enveloppe de volume à l'aide de la commande ENV. Vous avez la possibilité de fixer plusieurs différentes, chacune ayant son propre numéro de référence, tout comme la commande SOUND.
Si vous avez créé une enveloppe de référence N°1 et que vous désiriez l'utiliser dans une commande SOUND, tapez 1 à l'endroit requis pour le paramètre de l'enveloppe. Nous expliquerons bientôt la création d'une enveloppe de volume.
Enveloppe de tonalité
Vous pouvez utiliser la commande ENT pour faire varier le ton d'une note. Vous avez la possibilité de fixer plusieurs enveloppes de tonalité qui, comme la commande SOUND, ont chacune un numéro de référence. Si vous créez une enveloppe de tonalité de 1 et que vous faites appel à la commande SOUND, tapez 1 à l'endroit requis pour le paramètre de l'. Nous expliquerons bientôt la création d'une enveloppe de tonalité.
Bruitage
C'est le dernier paramètre de la commande SOUND. Il peut varier de 1 à 31. Ajoutez le paramètre 2 à la fin de la commande SOUND et écoutez l'effet obtenu. Faites-le passer à 27 et constatez la différence. Tapez :
18 SOUND 1,239,200,15,,2
Remarquez que les deux paramètres précédant le paramètre de (...) ont été omis. Ils indiquent ainsi l'absence d'et de.
Création d'une enveloppe de volume
Elles s'obtiennent par la commande ENV. Sous sa forme de base, cette commande possède 4 paramètres. Elle se présente ainsi :
ENV,,,
Comme précédemment, nous allons étudier ces paramètres un par un.
Numéro d'enveloppe
C'est un numéro de référence (entre 0 et 15) appelable par la commande SOUND.
Nombre de pas
Ce paramètre spécifie le nombre de pas d'évolution du volume sonore entre le début du son et sa fin. Par exemple, pour une note de 10 secondes, vous pouvez obtenir 10 pas d'une seconde chacun. Dans ce cas, le paramètre du < nombre de pas> sera égal à 10.
Il peut varier de 0 à 127.
Amplitude du pas
Chaque pas peut faire varier le volume de 0 à 15 par rapport au pas précédent. Les 16 volumes différents sont les mêmes que ceux de la commande SOUND. Cependant, le paramètre d'amplitude du pas peut varier de -128 à +127, car le volume revient à 0 après avoir dépassé 15 (16, 32, 48, 64, 80, 96, etc.).
Durée du pas
Ce paramètre spécifie la durée de chaque pas par incrément de 0,01 seconde. Il varie de 0 à 255, soit une durée maximale de 2,56 secondes (0 est considéré comme 256).
Notez que le < nombre de pas> multiplié par la ne doit pas dépasser le paramètre de de la commande SOUND, car le son cesserait avant que le dernier pas n'ait été atteint (entraînant la perte du reste de l'enveloppe de volume).
De même, si le paramètre de de la commande SOUND dépasse le < nombre de pas> multiplié par la, le son se poursuit après avoir atteint le dernier pas et garde le volume final.
Pour tester l'enveloppe de volume, tapez le programme:
10 ENV 1,10,1,100 20 SOUND 1,142,1000,1,1 run
La ligne 20 spécifie un son d'une période de 284 (LA international), durant 10 secondes avec un volume de départ de 1, utilisant l'enveloppe de volume numéro 1 constituée de 10 pas, élevant chaque pas d'une unité de volume et durant une seconde (100 x 0,01 sec).
Changez la ligne 10 de la manière suivante et faites run chaque fois pour entendre la différence :
| 10 env 1,100,1,10 |
| 10 env 1,100,2,10 |
| 10 env 1,100,4,10 |
| 10 env 1,50,20,20 |
| 10 env i,50,2,20 |
| 10 env 1,50,15,30 |
Essayez finalement :
18 ENV 1,50,2,10
Vous pouvez constater que le niveau de son reste constant à mi-chemin. En effet, le nombre de pas (50) et l'écart entre les pas (0,1 seconde) donnent une variation du son de 5 secondes seulement, alors que la durée du son dans la commande SOUND (la ligne 20) est de 1000, soit 10 secondes.
Expérimentez les types de sons que vous pouvez créer.
Si vous le désirez, vous pouvez créer des enveloppes de volume plus complexes. Les 3 paramètres < nombre de pas >, et peuvent être repris jusqu'à quatre fois à la fin de la commande ENV, permettant de spécifier des portions d'enveloppe différentes.
Création d'une enveloppe de tonalité
La commande d'enveloppe de tonalité est ENT. Sous sa forme de base, elle a 4 paramètres. Elle se présente sous la forme:
ENT,,,
Regardons ces paramètres un par un.
Numéro d'enveloppe
C'est le nombre d'appels pour la commande SOUND. Il peut prendre une valeur de 0 à 15.
Nombre de pas
Ce paramètre fixe le nombre de pas de la tonalité du son entre son début et sa fin. Si, par exemple, une note dure 10 secondes, vous pouvez obtaining 10 pas d'une seconde chacun. Le paramètre < nombre de pas> est alors égal à 10.
Il peut varier de 0 à 239.
Variation de période sonore affectée à chaque pas
Chaque pas peut faire varier la hauteur du son de -128 à +127 par rapport au pas précédent. Les pas négatifs augmentent la hauteur de la note. Les pas positifs l'abaissent. La période la plus courte correspond à 0. Vous devez tenir compte de ces notions lorsque vous définissez une enveloppe de tonalité. Vous trouvez toutes les possibilités de périodes de ton au chapitre « Pour information... »
Durée du pas
Ce paramètre spécifie la durée de chaque pas par incrément de 0,01 seconde. Il varie de 0 à 255, soit une durée maximale de 2,56 secondes (0 est considéré comme 256).
Le < nombre de pas > multiplié par la < durée du pas > ne doit pas dépasser le paramètre de < durée > de la commande SOUND, car le son cesserait alors avant que le dernier pas n'ait été atteint (dans ce cas, le reste de l'enveloppe de tonalité est perdu).
De même, si le paramètre de la commande SOUND dépasse le multiplié par la, le son se poursuit après avoir atteint le dernier pas et garde la tonalité finale.
Pour tester l'enveloppe de tonalité, tapez le programme ci-dessous:
$$ \begin{array}{l} 1 0 \text {E N T} 1, 1 0 0, 2, 2 \ 2 0 \text {S O U N D} 1, 1 4 2, 2 0 0, 1 5, 1 \ r u n \end{array} $$
La ligne 20 spécifie un son ayant une période de 142 (LA international), durant 2 secondes avec un volume de départ de 15 (max), dépourvu d'enveloppe de volume (constatez l'omission du paramètre:..) mais doté d'une enveloppe de tonalité N° 1.
La ligne 10 affecte au N°1 une enveloppe de tonalité constituée de 100 pas, augmentant la période de 2 unités à chaque pas et ayant chacun une durée de 0,02 seconde (2 x 0,01 s).
Modifiez maintenant la ligne 10 selon les trois manières indiquées et lancez le programme pour entendre l'effet obtenu.
10 ent 1,100,-2,2 10 ent 1,10,4,20 10 ent 1,10,-4,20
Remplacez la commande SOUND et l'enveloppe de tonalité en tapant :
10ENT1,2,17,78
20 SOUND 1,71,148,15,
30 6070 10
run
Appuyez deux fois sur [ESC] pour interrompre le programme.
Vous pouvez maintenant combiner l'enveloppe de volume, l'enveloppe de tonalité et la commande SOUND pour obtenir des sons différents. Commencez par taper :
10 ENV 1,100,1,3 20 ENT 1,100,5,3 30 SOUND 1,142,300,1,1,1 run
Puis remplacez la ligne 20 par :
20ENT1,100,-2,2
Remplacez maintenant toutes les lignes par :
10 ENV 1,100,2,2 20ENT1,100,-2,2 30 SOUND 1,142,208,1,1,1 run
Si vous désirez créer des enveloppés de tonalité plus complexes, vous pouvez répéter jusqu'à quatre fois les trois paramètres : < nombre de pas>, et à la fin de la commande ENT afin de spécifier des portions différentes pour une même enveloppe. Essayez plusieurs versions. Ajoutez à la commande SOUND le paramètre permettant d'ajouter du bruitage et des portions supplémentaires d'enveloppe de tonalité et de volume.
Le chapitre « Liste complète des mots clés du BASIC AMSTRAD 6128 » décrit en détail les commandes de son. Si vous désirez découvrir les possibilités sonores de votre ordinateur, reportez-vous au paragraphe « Sons et musique » du chapitre « A vos heures de loisir... »
Qu'est-ce qu'amSDOS?
À la mise sous tension ou lors d'une réinitialisation, le système se place par défaut sous AMSDOS, abréviation d'AMSTRAD Disc Operating System (système d'exploitation de disque AMSTRAD), offrant les commandes de traitement de fichiers et les fonctions :
LOAD "nomfich"
RUN "nomfich"
SAVE "nomfich"
CHAIN "nomfich"
MERGE "nomfich"
CHAIN MERGE "nomfich"
OPENIN "nomfich"
OPENOUT "nomfich"
CLOSEIN
CLOSEOUT
CAT
EOF
INPUT #9
LINE INPUT #9
LIST #9
PRINT #9
WRITE #9
AMSDOS fournit en outre plusieurs commandes supplémentaires de gestion de disquettes.
Ces commandes, appelées commandes externes, sont précédées du symbole | (vous entrez cette barre en appuyant simultanément sur les touches [SHIFT] et @)
Les commandes externes les plus fréquentes sont :
a b tape (qui peut etre subdivisie en | tape.in et en | tape.out) disc (qui peut etre subdivisie en disc.in et en disc.out)
Les commandes a et b permettent aux systèmes à deux unités de disquettes d'indiquer à l'ordinateur l'unité vers laquelle il doit diriger les commandes ultérieures.
Si vous tapez, par exemple :
1. Chargez "nomfich"
... vous indiquez à l'ordinateur qu'il doit charger en mémoire le programme spécifique, se trouvant sur une disquette placée dans l'unité A.
Si vous ne spécifiez pas | a ou | b lors de la réinitialisation, le système exploite par défaut l'unité A. Si vous n'utilisez que l'unité de disquette intégrée au système, elle est alors considérée comme l'unité A et vous n'avez donc aucun besoin de spécifier | a ou | b. Avec un système à une seule unité, un | b fait apparaître le message d'erreur suivant :
... auquel vous devez répondre C (pour cancel - annuler).
Que faire pour utiliser une cassette?
La commande | tape indique à l'ordinateur qu'il doit gérer le chargement, la sauvegarde, etc., vers une unité de cassette externe et non vers la disquette. Si | tape n'est pas entrée, l'ordinateur, à chaque mise en route ou reset, dirige toutes les opérations automatiquement vers la disquette. Pour revenir sur disquette après un | tape, vous nevez rentrer la commande : | disc. Par contre, vous pouvez avoir besoin de charger un programme sur cassette et de sauvegarder des données sur disquette. Faites alors appel à la commande :
: tape. in
Cette commande dit à l'ordinaire : tu dois lire sur la cassette et écrire sur la disquette.
Inversement, pour lire le disque et écrire sur la cassette, vous devez entrer la commande | disc. in pour annuler le | tape. in entré précédemment, puis | tape. out pour diriger toutes sorties de données vers la cassette.
On peut ainsi avoir des | tape. in et des | tape. out qui vont annuler des | disc. in et des | disc. out, et vice-versa.
Vous trouvez des détails plus précis concernant les entrées et sorties aux chapitres « Utilisation des disquettes et des cassettes » et « Les éléments de l'AMSDOS et du CP/M » (chapitres 4 et 5).
Duplication de programmes d'une disquette à l'autre ou sur cassette
La partie 7 du Cours Elémentaire décrit le formatage d'une disquette vierge à l'aide du programme DISCKIT 3 sur la face 1 de l'une des disquettes système CP/M et la duplication des programmes d'une disquette à l'autre. Considérant les informations ci-dessus, les commandes :
: tape : disc : tape. in : tape. out : disc. in : disc. out : a : b
... vous permettront de charger et de sauvegarder vos données sur cassette (si une unité de cassette est connectée à l'ordinateur) ou disquette, dans l'unité A ou B.
Les commandes externes :
... sont traitées dans le chapitre 5 « Les éléments de l'AMSDOS et du CP/M »
Duplication/copie intégrale d'une disquette
Vous, à l'aide du programme DISCKIT3 (face 1 d'une des disquettes système CP/M), copier intégralement une disquette sur une autre.
Cette méthode vous servira, entre autres, à faire des copies de sauvegarde de vos disquettes système.
Insérez l'une des disquettes système dans l'unité, face 1 vers le haut, et tapez :
cpm
disck13
Au bout de quelques secondes, le message initial du DISC KIT apparait en haut de l'écran. Suivi:
One drive found
Ce message indique que vous êtes sous l'utilitaire DISC KIT et que l'ordinateur a détecté l'exploitation d'une seule unité de disquette (elle qui est intégrée à l'ordinateur).
Si une unité supplémentaire est reliée au système, l'affichage indique :
Deux disques trouvés
et ce menu apparait au bas de l'écran :
copy
Format
Verify
Sortir du programme
| 7 | |
| 4 | |
| 1 | |
| 0 |
Il s'agit du menu principal du DISC KIT. Les numéros inscrits dans les cases correspondent aux touches de fonction situées à droite du clavier (f0, f1, f3 et f7). Faites votre sélection à l'aide de la touche voulue.
Appuyer sur la touche de fonction f0, à ce stade des opérations, vous fait sortir du programme DISC KIT pour vous ramener sous le système CP/M (message A>
Puisque nous voulons copier une disquette, appuyez sur f7.
Attention
LA COPIE SUR UNE DISQUETTE DEJA ENREGISTREE ENTRAINERA L'EFACEMENT DE SON CONTENU.
Copie sur un système à une seule unité
Si vous utilisez un système à une seule unité (pas d'unité supplémentaire raccordée), vous recevez à l'écran le message :

Copy
Pour dupliquer la disquette système, il suffit de la laisser dans l'unité.
Si la disquette source (elle dont vous souhaitez copier le contenu) se trouve dans l'unité, tapez Y.
L'ordinateur examine le format de la disquette et l'affiche en haut de l'écran, pour votre information.
Au bout d'un moment, ce message vous est adressé :
Veuillez aussi ressortir la disquette source de l'unité, insérer la disquette cible (celle sur laquelle vous désirez copier les données) puis appuyer sur une touche quelconque du clavier.
Les informations sur le format de la disquette cible sont affichées en haut de l'écran, même s'il s'agit d'une disquette vierge non formatée.
Si la disquette cible n'est pas correctement formatée (voire pas formatée du tout), le formatage s'effectuera pendant la duplication et vous verrez apparaître le message :
... ou un message similaire, suivant les disquettes cible et source.
Lorsque l'ordinateur est prêt pour la lecture de la disquette source, il vous communique ce message :
L'achèvement de l'opération de copie après répétitions de cette manipulation des disquettes source et cible, est signalé par le message :
... suivez alors les instructions affichées à l'écran, qui vous laissent le choix entre copier une autre disquette (en tapant Y) et revenir au menu principal du DISC KIT.
Protection en écriture
Vous ne pouvez pas effectuer de copie sur une disquette dont le trou de protection en écriture est ouvert. Si vous tentez de le faire, vous obtenez ce message:
Tapez alors C pour annuler, retirez la disquette et insérez-en une autre appropriée à la copie.
Veillez à ne jamais fermer le trou de protection en écriture des disquettes dont vous souhaitez conserver le contenu. C'est NOTAMMENT le cas des disquettes système CP/M.
Duplication/copie dans un système à deux unités
Suivez les instructions ci-dessus, chargez le programme DISCKIT3 situé sur la face 1 d'une des disquettes système et sélectionnez l'option Copy du menu principal du DISCKIT au moyen de la touche f7.
Vous verrez alors apparaître un nouveau menu :
Read from A:
Read from B:
Exit menu

Lors de la duplication de disquettes dans un système à deux unités, insérer et retirer les disquettes cible et source n'est plus nécessaire. Le menu ci-dessus vous permet de sélectionner l'unité dans laquelle vous désirez insérer la disquette source. Appuyez sur F8 pour copier à partir de la disquette de l'unité A.
Un troisième menu apparait alors à l'écran :
Ce menu vous permet de sélectionner l'unité dans laquelle se trouvera la disquette cible. Rien ne vous empêche de choisir la même unité pour les disquettes source et cible, mais vous serez alors obligé d'intervertir les disquettes, négligeant les avantages d'un système à deux unités.
Pour plus de rapidité et de commodité, appuyez sur la touche F6 pour effectuer la copie sur une disquette insérée dans l'unité B.
Il ne vous reste plus qu'à placer les disquettes dans les unités appropriées et appuyer sur Y pour lancer la duplication.
Cette fois encore, les informations sur le format des deux disquettes sont s'affichent et si la disquette cible est mal formée ou pas formée du tout, cette lacune sera complétée lors de la copie.
La fin de la duplication est signalée par :
Vous devez alors restorer les DEUX disquettes pour poursuivre. Vous pouvez refaire une duplication en tapant Y, ou revenir au menu principal du DISC KIT à partir de toute autre touche.
Vérification des disquettes
Le programme DISCKIT3 vous offre également la possibilité de vérifier les disquettes.
Le système affiche les informations concernant le format de la disquette et effectue la lecture de tous les fichiers qu'elle contient. Toute erreur détectée à l'intérieur d'un fichier est signalée à l'écran.
Pour vérifier une disquette, insérez l'une des disquettes CP/M, face 1 vers le haut, et tapez:
iCpm
disckit3
Sélectionnez l'option Verify du menu principal du DISC KIT (touche F1) et suivez les instructions affichées.
Si vous opérez sur un système à deux unités, vous pouvez vérifier une disquette insérée dans les unités A ou B.
Une fois la disquette à vérifier dans l'unité, tapez Y pour lancer l'opération.
La fin de la vérification est signalée par :
Si vous opérez sur un système à deux unités, vous devez retirer les DEUX disquettes avant de pouvoir poursuivre. Effectuez alors une autre vérification en tapant Y, ou revenez au menu principal du DISC KIT en appuyant sur toute autre touche.
Utilisation du programme DISC KIT sous cp/m2.2
Pour formater, copier ou vérifier des disquettes créées avec ou pour les systèmes CPC664 ou CPC464 + DD11, donc sous CP/M2.2, vous disposez d'un programme DISC KIT, situé sur la face 4 d'une des disquettes système. Ce programme s'appelle DISCKIT2 et fonctionne de la même manière que le DISCKIT3 déjà décrit.
Pour lancer le DISCKIT2, insérez la disquette adéquate, face 4 vers le haut, et tapez:
: cpm
À l'apparition du message initial du CP/M2.2 et de A, tapez:
disckit2
Il vous suffit ensuite de sélectionner les options requises et suivre les instructions à l'écran de la même façon qu'avec le DISCKIT3.
Remarque: Pour la duplication, le programme DISCKIT2 utilise la mémoire de l'écran. Vous verrez donc apparaître à l'écran, pendant cette procédure, une image aléatoire.
Complément d'information
Pour de plus amples informations sur l'utilisation des programmes des disquettes système CP/M, consultez les chapitres 4 à 9.
En dernier ressort, vérifie que vous avez bien respecté les indications données au début du manuel, sous la rubrique « IMPORTANT » :
Utiliser les autres 64KO de la mémoire
Le CPC6128 possède une RAM (Random Access Memory ou « mémoire vive ») de 128Ko, divisée en deux parties de 64Ko. CP/M Plus utilise en permanence la totalité de ces 128Ko, alors que le BASIC n'exploite que la première partie de 64Ko disponible. Il serait dommage de laisser à l'abandon ces 64Ko au cours d'une programmation en BASIC. C'est pourquoi un programme a été mis à disposition pour l'exploitation de cet espace mémoire inutilisé. Ce programme offre des commandes spéciales supplémentaires pour permettre l'utilisation de la seconde partie de RAM, soit pour le stockage des images d'écran, soit pour la liaison de chaîns.
Ce programme fournissant des commandes supplémentaires s'intitule BANK MANAGER, « gestionnaire de bloc », le terme technique « bloc » désignant une partie de la mémoire.
Utiliser BANK manager pour les images d'écran
Le 6128 affiche en permanence une image à l'écran. Il exploite pour ce faire 16Ko de mémoire pour stocker les informations concernant la couleur et la brillance de chaque pixel de l'écran. Le 6128 gère six blocs de 16Ko, ce qui signifie six images d'écran stockées simultanément dans la mémoire de l'ordinateur. BANK MANAGER vous permet de jongler et d'afficher un maximum de cinq images d'écran avec le BASIC.
À la mise sous tension, le système d'affichage exploite un bloc mémoire de 16Ko; nous l'appellerons « bloc 1 ». Les quatre autres écrans sont contenus dans la seconde partie de 64Ko, dans les blocs 2, 3, 4 et 5.
Seul le bloc 1 (contenu dans la première partie de la mémoire) peut servir à l'affichage d'un écran. Pour visualiser un bloc stocké dans la deuxième partie (blocs 2 à 5), il faudra donc le placer dans le bloc 1. BANK MANAGER fournit toutes les commandes nécessaires pour déplacer les écrans : SCREENCOPY, par exemple, transfère un écran sur un autre écran en écrasant le contenu de ce dernier. ISCREENSWAP, pour sa part, permute le contenu des écrans.
Tout comme AMSDOS évoqué précédemment, BANK MANAGER dispose de « commandes externes » commençant par le symbole | (barre verticale), que vous obtenez en appuyant simultanément sur [SHIFT] et (a).
Utilisation de BANK manager
Réinitialisez l'ordinateur en appuyant sur les touches [CONTROL] [SHIFT] et [ESC], insérez l'une des disquettes système, face 1 vers le haut, puis tapez:
RUN "BANKMAN"
La procédure de chargement de ce programme est détaillée au chapitre 7, partie 13, concernant les extensions résidentes du système (RSX). Une certaine compréhension de ces extensions et de la répartition d'espace mémoire est recommandée pour l'utilisation de ces sous-programmes. Quoi qu'il en soit, pour les exemples qui suivent, vous n'avez pas à maîtriser la procédure de chargement.
Tapez:
Le texte doit alors disparaître de l'écran. Vous cherchez maintenant ce qu'était le contenu de l'écran 2 (bloc 2 de la mémoire). Si l'ordinateur vient d'être mis sous tension, vous avez probablement à l'écran une image aléatoire. Pour l'effacer, tapez :
MODE 1
puis :
PRINT "CECI EST L'ECRAN 2" ISCREENSWAP,1,2
Le texte initial s'affiche de nouveau. Si vous répétez la commande SCREENSWAP,1,2, vous constaterez que les contenus des deux écrans ont été intervertis. Vous pouvez ainsi échanger les contenus des cinq écrans disponibles, mais n'oubliez pas que seuls les échanges impliquant l'écran 1 seront visibles à l'écran.
L'autre commande disponible est ! SCREENCOPY. Elle vous permet de copier un écran sur un autre avec écrasement des anciennes données.
Tapez:
MODE 1 PRINT "CECI EST L'ECRAN A COPIER" ISCREENCOPY,2,1
Le contenu de l'écran 1 est copié sur l'écran 2. Si vous insérez les paramètres en tapant :
MODE 1
; SCREENCOPY,1,2
le contenu de l'écran affiché est écrasé par celui de l'écran 2.
Le premier paramètre est donc l'écran sur lequel s'effectue la copie, et le second paramètre, l'écran à partir duquel s'effectue celle-ci.
Lorsque vous copiez des écrans et que les MODEs des écrans sont différents, vous obtenez un affichage disjoint, de même si vous avez effectué un défilement d'écran depuis la première commande MODE. Les commandes décran de BANK MANAGER sont plutôt destinées aux écrans graphiques qu'aux écrans de texte car les défilements y sont moins fréquents.
Utiliser BANK manager pour le stockage de chaînes
BANK MANAGER dispose de quatre commandes supplémentaires destinées à l'utilisation des 64Ko de mémoire supplémentaire pour archivage de chaînes alphanumériques.
La plupart des programmes peuvent se scinder en deux parties : d'une part, les instructions propres dites et d'autre part, les données du programme. Un programme de gestion de base de données comme un carnet d'adresse en est un bon exemple. Un tel programme utilise un tableau déchaîné pour le stockage des noms et des adresses correspondant aux différentes personnes répertoriées.
Les chaînes sont stockées dans la seconde partie de 64Ko, l'une après l'autre et bout à bout. L'espace de stockage de ces chaînes peut se diviser en compartments, appelés enregistrements. La longueur fixe d'un enregistrement est comprise entre 2 et 255 caractères et la longueur d'une chaîne en BASIC varie selon son contenu. Les enregistrements servent à fournir des compartments de taille standard propres au rangement des chaînes d'information sous une forme ordonnée. À chaque stockage ou recherche de données dans un enregistrement, le système passe automatiquement à l'enregistrement suivant pour une nouvelle opération. Cet enregistrement, appelé « enregistrement courant », est automatiquement utilisé, sauf spécification contraire.
Ce système de gestion de mémoire est nommé « RAMdisc », car il fonctionne comme un disque à accès aléatoire. Ici, le support est remplacé par la RAM.
Lisez les descriptions des différentes commandes pour comprendre leur raison d'être, sinon leur fonctionnement, et passez aux exemples.
La première commande RAMdisc est BANKOPEN. Elle spécifie le nombre de caractères contenus dans chaque enregistrement. Voici sa syntaxe :
ou n est le nombre de caractères de l'enregistrement, compris entre 0 et 255; mais les valeurs 0 et 1 provoquent des effets inattendus.
BANKWRITE stocke une chaîne dans l'enregistrement en cours; le pointeur d'enregistrement est incrémenté pour pointer sur l'enregistrement suivant, prêt pour la prochaine opération. Voici sa syntaxe:
: BANKWRITE, or %, a$
ou r% est une variable entière contenant un code de retour pour information sur le déroulement de l'opération, et a$ une variable alphanumérique contenant les caractères à écrire dans l'enregistrement. Dans le premier exemple, l'enregistrement est l'enregistrement en cours. Dans le second, le paramètre n, facultatif, spécifie l'enregistrement sur lequel s'effectuera l'opération d'écriture.
BANKREAD lit l'enregistrement en cours et renvoie son contenu dans une chaîne. Le pointeur d'enregistrement est ensuite incrémenté pour pointer sur l'enregistrement suivant, prêt pour la prochaine opération. La lecture d'un enregistrement le laisse inchangé : il peut donc être lu et relu indéfiniment. Voici sa syntaxe:
BANKREAD, or%, a\$
ou r % est une variable entière contenant un code pour information sur le déroulement de l'opération, et a\$ une variable alphanumérique dans laquelle le contenu de l'enregistrement est transféré. Dans le premier exemple, l'enregistrement est l'enregistrement en cours. Dans le second, le paramètre n, facultatif, spécifie l'enregistrement à dire.
La dernière commande, |BANKFIND, recherche une chaîne particulière dans l'ensemble des enregistrements. Si la chaîne est retrouvée, la commande envoie le nombre de l'enregistrement. Voici sa syntaxe:
BANKFIND, or%a\$
BANKFIND,2r2,a$,n,m
ou r% est une variable entière qui renvoie soit le numéro de l'enregistrement dans lequel la chaine a été trouvée, soit un code indiquant que la chaine n'a pas été trouvée; a est la chaine à rechercher. Le paramètre facultatif précise l'enregistrement du début de la recherche; s'il n'est pas spécifié, la recherche démarre à l'enregistrement en cours. Le deuxième paramètre facultatif, m, spécifie l'enregistrement de fin de recherche même si la chaine n'est pas retrouvée. En cas d'omission de m, la recherche se poursuit jusqu'à concurrence des 64Ko de mémoire, pouvant dans certains cas continuer au-delà du dernier enregistrement écrit.
Passons maintenant à un exercice. Si vous avez déjà lancé le programme BANK MANAGER pour prendre conscience des commandes d'échange d'écrans et que vous n'avez pas réinitialisé l'ordinateur, ces commandes supplémentaires sont désormais résidentes. Dans le cas contraire, vous devez insérer l'une des disquettes système, face 1 vers le haut, et taper :
RUN "BANKMAN"
puis :
; BANKOPEN, 20
La longueur de l'enregistrement est ainsi fixée à 20 caractères et l'enregistrement en cours est 0. Tapez alors :
a= "PREMIÈRE ENTREE" + SPACE(5)
La chaîne a$ comprendra exactement 20 caractères.
Tapez maintenant:
r% = 0
afin d'initialiser la variable r%
puis :
BANKWRITE, or%a$
As va donc s'écire dans le premier enregistrement (0). Tapez ensuite :
d=SPACE(20)
: BANKREAD, dr%, d$, 0
PRINT d\$
La première commande initialise d avec 20 espaces, suffisants pour contenir l'enregistrement en cours de lecture. La deuxième commande lit l'enregistrement 0 et place le résultat dans d. La commande | BANKWRITE incrémente le pointeur d'enregistrement d'une unité: il faut donc spécifier l'enregistrement 0 pour la lecture. En effet, souvenez-vous que la lecture commence par défaut à l'enregistrement en cours. Le résultat de la lecture est finalement affiché, d doit donc contenir « PREMIÈRE ENTREE » et 5 espaces.
b="DEUX" + SPACE (16)
c="TRUIS" + SPACE (15)
BANKWRITE, ∅%, b$, 1
BANKWRITE, ∅%, c$
Ces instructions placent bet c dans les enregistrements 1 et 2. Le paramètre facultatif de la première commande BANKWRITE permet de placer bdans l'enregistrement 1. L'enregistrement en cours passant ensuite à l'enregistrement suivant, il n'est donc pas nécessaire de spécifier l'enregistrement de destination de c, qui sera placé automatiquement dans l'enregistrement 2.
Tapez:
PRINT rX
Le résultat de PRINT r% dans cet exemple doit être 2. On peut considérer ce nombre comme le dernier enregistrement sur lequel une opération a été effectuée ou bien encore comme l'enregistrement courant diminué d'une unité. Dans notre exemple, le dernier enregistrement d'écriture est 2 et l'enregistrement suivant sera 3.
L'intérêt de ce « code de retour » est de nous renseigner sur le déroulement de l'opération qui vient de s'effectuer. Lorsque celle-ci a abouti, le code est positif et correspond à un numéro d'enregistrement. Sinon, le code est négatif et renvoie à un code d'erreur. Les commandes |BANKWRITE et |BANKREAD peuvent engendrer deux codes d'erreur :
1 - fin de fichier, indique que tous les enregistrements ont été passés en revue ou que l'enregistrement spécifié n'existe pas; 2 - erreur lors d'un changement de bloc, ce qui ne devrait jamais se produire.
Passons à d'autres exemples :
ds=STRING(20,"X")
: BANKOPEN, 20
FOR n=1 to 3: : BANKWRITE, dr%, ds::next
dcontienda 20 x. |BANKOPEN réinitialise le pointeur d'enregistrement à 0, ce qui provoque l'échec des enregistrements 0, 1 et 2 par le contenu de d lors de l'exécution de la commande | BANKWRITE.
Tapez lieutenant:
a$ = "PREMIER"
; BANKWRITE, dr%, a$, 0
Cette instruction écrit « PREMIER » dans l'enregistrement 0, écrasant ainsi quelques X. A, réinitialisez d$ avec 20 espaces:
Le résultat de la lecture de l'enregistrement 0 est placé dans la variable d$. Récapitulons:
Les trois enregistrements contiennent des X. Dans l'enregistrement 0, nous avons introduit le mot « PREMIER ». Nous avons rempli dd'espaces, puis introduit dans d le résultat de la lecture de l'enregistrement 0. Tapez maintenant:
Le résultat doit être « PREMIERXXXXXXXXXXXXXX ». Ceci illustre une particularité importante de ces commandes. Si la chaine placée dans un enregistrement ne le remplit pas entièrement, les caractères non écrasés demeurent dans cet enregistrement. Il est donc préférable d'y introduire une chaine d'espaces (CHR(32)) avant d'y stocker de nouvelles données. Ceci évite, lors de la relecture d'une chaine, de trouver des caractères qui ne devraient pas y être. Cette constatation concerne également la chaine où s'inscrit le résultat d'une lecture d'enregistrement. Si la chaine est plus longue que l'enregistrement, certains caractères en fin de chaine resteront inchangés, ce qui explique la réinitialisation de d (par remplissage d'espaces) avant qu'y soit placé le résultat de la lecture de l'enregistrement 0.
Il est possible d'écrire une chaine dans un enregistrement contenant moins de caractères que celle-ci. Dans ce cas, les caractères excédants seront ignorés.
De même, il est possible de lire le contenu d'un enregistrement dans une chaine moins de caractères que celui-ci. Là encore, les caractères excédentaires (lus dans l'enregistrement) seront ignorés. Habituellement, le BASIC augmente automatiquement la longueur de la chaine pour qu'elle accepte les caractères excédentaires. Ce n'est pas le cas avec les commandes externes.
Pour terminer, voyons la commande | BANKFIND. Elle permet de rechercher une chaîne parmi un groupe d'enregistrements. Par exemple, si l'enregistrement 24 commence par « FRED », cette commande permettra de le trouver:
Cette commande est extrêmement utile pour les programmes de gestion de bases de données, pour la recherche d'un nom ou d'une adresse.
BANKFIND commence sa recherche à l'enregistrement courant et poursuit jusqu'à couvrir la chaîne en question, ou la fin de la seconde partie de 64Ko de mémoire où sont stockés les enregistrements.
Il est possible de désigner l'enregistrement de départ de la recherche en ajoutant un nombre d'enregistrement à la fin de la commande.
Il est également possible d'introduire un autre numéro d'enregistrement à la suite du premier pour indiquer l'enregistrement de fin de recherche.
BANKFIND peut aussi servir à retrouver une chaîne située ailleurs qu'au début d'un enregistrement. Pour ce faire, on placera devant les caractères recherchés des CHR$(0) qui sont traités comme des jokers (tel « ? » dans les noms de fichiers sous CP/M), pourront ainsi remplacer n'importe quel caractère. Voici un exemple :
Et voici retrouvé le premier enregistrement concernant le mot « FRED » situé entre le onzième et quatorzième caractères. Les dix premiers caractères pourront contenir un numéro de téléphone ou tout autre information, que la commande BANKFIND ignorera.
Le nombre de l'enregistrement où se trouve la chaine sera placé dans la variable entière r% servant de code de (si « FRED » a été trouvé), sinon, le code de retour sera -3.
Complément d'information
Pour plus de détails sur BANK MANAGER, reportez-vous au chapitre 8 et aux parties 13 et 14 du chapitre 7 concernant les extensions résidentes du système (RSX).
Enfin, assurez-vous que vous avez bien respecté les avertissements donnés au début de ce manuel, sous la rubrique « IMPORTANT »:
REMARQUES RELATIVES À L'INSTALLATION: 1, 2, 3.9.
Voici la fin de la partie 10 du Cours Élémentaire sur le CPC664. Vous connaisssez désormais la plupart des touches du clavier, les commandes BASIC les plus simples, le formatage d'une disquette vierge pour sa préparation à l'emploi et l'exécution des fonctions de base sur disquette comme : LOAD, SAVE, CAT, etc... ainsi que quelques commandes élémentaires AMSDOS et CP/M. La partie suivante approfondit certains aspects de l'informatique et du BASIC AMSTRAD. Il détaillé l'unité de disquette du système, présente AMSDOS et CP/M et vous initie au nouveau langage de Digital Research : Dr. LOGO.
Bonne chance... etonne lecture!
Chapitre 2 passons aux choses sérieuses...
Après la lecture du Cours Elémentaire, vous savez mettre votre ordinateur en marche, lui faire répéter plusieurs fois une même opération en utilisant la boucle FOR NEXT et lui demander de vérifier si (IF) une condition est remplie pour qu'il exécute alors (THEN) une instruction.
Mais vous devez en avoir assez de voir votre nom s'afficher sur tout l'écran et vous voudriez maintenant commencer à faire justement de l'informatique, utile ou amusante. Vous trouverez dans le chapitre suivant la liste des mots clés du BASIC AMSTRAD, accompagnés de tout ce qu'il faut savoir sur leur « syntaxe » et leur fonction. Lorsque vous la posséderez à fond, votre ordinateur et vous ne connaîtrez d'autres limites que celles de votre imagination.
Si c'est la première fois que vous servez d'un ordinateur, vous ressentirez peut-être quelques appréhensions à l'idée de « faire de la programmation ». Rassurez-vous : c'est bien plus simple que vous ne l'imaginez et certainement moins compliqué que les spécialistes ne voudraient le faire croire avec leur jargon! Dites-vous que BASIC n'est pas une nouvelle langue à apprendre, mais plutôt un dérivé de l'anglais auquel, pour gagner du temps, on a ajouté quelques abréviations. CLS n'est donc pas une formule magique, mais la forme abrégée de Clear Screen (Vide l'Ecran).
Finie la peur du BASIC, vous serez bientôt surpris de voir comme il est agréable, après quelques heures de programmation, de récolter les premiers fruits de ses efforts. La programmation est un exercice passionnant, surtout pour un débutant qui aborde un langage et une machine pour la première fois. Souvenez-vous bien que, tant que vous n'écrivez pas par inadvertance sur la disquette du système d'exploitation CP/M, rien de ce que vous entrez au clavier ne peut endommager votre ordinateur. Aussi, n'hésitez pas à innover!
Mais par où commencer?
C'est souvent le début d'un programme qui pose le plus de problèmes au néophyte. Évitez sur tout de vous jeter sur le clavier avant d'avoir réfléchi à ce que vous pouvez faire.
Vous devez d'abord chercher à établir, d'une part, ce que le programme est censé faire et, d'autre part, la manière dont les résultats vous seront présentés, c'est-à-dire ce qui apparaîtra à l'écran lors de l'exécution du programme.
Une fois ceci établi, vous pouvez entamer la réduction proprement dite du programme, en songeant constamment qu'il doit se dérouler sans accoups du début à la fin, avec un minimum de sauts (GOTO) en tous sens. Un programme bien écrit doit se lier aisément : songez au casse-tête qui vous attend lors de sa mise au point, ou de son « débogage », comme on dit en jargon informatique.
Soyez tranquille, BASIC est un langage extrêmement tolérant : il vous remettra souvent dans le droit chemin d'un simple message d'erreur affiché à l'écran. Si une idée vous vient après coup, il ne fera aucune difficulté pour insérer une nouvelle ligne entre deux lignes existantes.
Écrivons un petit programme
Et maintenant, au travail ! Nous allons écrire un programme permettant d'enregistrer le nom et le numéro de téléphone de vos amis. Ce sera le programme « Répertoire Téléphonique ». Posons-nous d'abord les deux questions primordiales : « Que doit-il faire ? », et « Comment les résultats seront-ils présentés ? »
Supposons que nous voulions un programme permettant d'enregistrer 100 nombres et numéros de téléphone. Il suffira d'entrer au clavier le nom d'une personne donnée pour obtenir aussitôt son numéro de téléphone. Ce programme devra de plus être capable d'afficher la liste de toutes les informations mémorisées, au cas où nous aurions oublié sous quelle forme un nom a été enregistré. Vous remarquez que nous sommes déjà en train de penser à la présentation des résultats.
Très bien, à vos claviers! Commençons par le titre:
10 REM répertoire téléphonique
Donner un titre n'est pas une obligation. Il vous aidera pourtant beaucoup à vous y retrouver lorsque vous aurez accumulé une quantité de programmes.
Nous voulons donc entrer (INPUT) une chaîne de caractères (un nom) dans une variable. Cette variable, nous l'appellerons NOM. De même, nous aurons une variable pour les numéros de téléphone, que nous appellerons TEL
Vous vous souvenez que, dans les exemples de programmes du Cours Elémentaire, l'instruction INPUT vous avait permis d'affecter une valeur à une variable. Ainsi, avec les lignes
20 INPUT "entrez le nom"; NOM$ 30 INPUT "entrez le numero de téléphone"; TEL$
... nous pourrons entrer un nom (disons « Paul »), puis un numéro de téléphone (par exemple 1 206 66 60).
Ces informations sont maintenant stockées par le programme, mais nous n'obtenons encore aucun résultat à l'écran. Il nous faut donc écrire une partie de programme permettant de retrouver et d'afficher ces informations. Pour obtenir la valeur actuelle de NOM et TEL, on aura recours aux instructions:
PRINT NOMS
... et...
PRINT TEL$
Mais attendez ! Nous avions bien dit qu'avec notre programme nous voulions enregistrer jusqu'à 100 noms et nombres de téléphone ? Nous n'allons tout de même pas écrire 100 instructions INPUT avec un nom de variable différent pour chacune, puis 100 instructions PRINT pour afficher la liste à l'écran !!! Non, bien sûr : l'ordinateur résout ce problème au moyen d'un instrument appelé « tableau ». Le tableau permet d'affecter à une même variable la « dimension » (le nombre de valeurs) désirée (100 dans notre cas). Pour connaître l'une de ces valeurs, il suffit d'entrer le nom de la variable suivi (entre parenthèses) du numéro de référence correspondant. Ce numéro s'appelle un « indice » et une expression telle que NOMS(27) s'appelle une « variable indéce ». Nous sommes donc en mesure, en utilisant une variable numérique x, de travailler sur l'ensemble des valeurs NOMS(x) de notre tableau : il suffit de faire prendre à x des valeurs de 1 à 100 dans une boucle FOR NEXT (FOR x = 1 TO 100). Chaque fois que x est augmenté de 1, l'indice est également modifié et désigne l'élément suivant du tableau, un nom dans ce cas.
Nous avons besoin, pour les variables NOM et TEL, de deux tableaux de dimension 100. Avant d'utiliser un tableau, il faut avoir déclaré sa DIMension. Remplaçons donc nos lignes 20 et 30 par ces déclarations.
Nos variables ainsi définies, écrivons un programme permettant d'introduire les noms et numérios de téléphone dans les tableaux (nous verrons plus tard comment les retrouver). Ajoutons les lignes :
40 FOR x=1 TO 100
50 INPUT "entrez le nom"; NOM$(x)
60 INPUT "entrez le numero de téléphone"; TEC$(x)
70 NEXT
run
Tout cela est fort bien, mais nous n'avons pas l'intention d'entrer les 100 noms en une seule fois. De plus, la présentation du programme à l'écran laisse beaucoup à désirer. Il s'agit maintenant d'apporter un peu d'ordre. Pour commencer, nous allons, avant chaque nouvelle entrée, débarrasser l'écran du texte antérieur devenu inutile. C'est l'affaire de l'instruction CLS :
45CLS
Mais comment indiquer à l'ordinateur que, pour le moment, nous avons fini d'introduire des données? Bien sûr, on peut toujours arrêter un programme en frappant la touche [ESC], mais alors nos précieux enregistrements seront effacés dès que nous donnerons à nouveau l'ordre RUN!
Il existe une (Meilleure solution : à chaque enregistrement d'un nouveau nom, demandons au programme de vérifier si quelque chose est affectivement et refait au clavier, c'est-à-dire si NOMs(x) n'est pas une chaine vide, et demandons-lui de s'interrompre dans le cas contraire. Avez-vous deviné par quel biais ? Écrivons :
55 IF NOMS(x) = "" THEN 80
80 PRINT"entree des donnees termeee"
Le programme doit lui-même indiquer à l'utilisateur comment l'interrompre. Ajoutons donc :
47 PRINT "pour arreter appuyer [ENTER]"
Voyons maintenant comment obtenir l'impression des informations enregistrées, d'abord sous forme de liste. Écrivons :
40 FOR x=1 TO 100
100 PRINT NOM(x); " ; TEL(x)
110 NEXT
Mais la encore le programme ne sait pas comment s'arrête avant le centieme élément du tableau. Ajoutons donc :
La chaîne vide est détectée en ligne 95 et le programme interrompt l'impression en sautant les lignes 100 et 110.
Passons maintenant à notre objectif suivant : nous voulons que le programme soit capable de rechercher un nom entré au clavier. Écrivons :
130 INPUT "nom a trouver :":RECHERCHE$
140 FOR x=1 TO 100
150 IF INSTR(NOM(x), RECHERCHE$)=0 THEN 190
160 PRINT NOM(x);" ";TEL(x)
170 END
180 NEXT
190 PRINT "La ma n'est pas repertoire"
run
Une nouvelle instruction est apparue en ligne 150 : INSTR. Cette instruction demande à l'ordinateur de rechercher à l'intérieur de la première chaîne citée, la première occurrence de la seconde chaîne. Autrement dit, il va rechercher dans NOM une occurrence de RECHERCHE (la variable introduite en ligne 130, contenant le nom que vous recherchez). Si INSTR ne trouve pas au moins une partie de cette chaîne, elle fournira la valeur 0, ce qui dans notre programme provoque un saut en ligne 180 et donc une nouvelle tentative avec la valeur suivante de x (NEXT). Si le programme a balayé toutes les valeurs autorisées de x (1 à 100), il peut alors atteindre la ligne 190 et annoncer qu'il n'a pas trouvé le nom demandé. S'il le trouve, INSTR fournit une valeur différente de 0. Le programme passe alors sur la ligne 160, affichant le nom et le numéro de téléphone, avant de s'achever à la ligne 170 (END).
Notre programme se perfectionne très rapidement, mais il nous reste encore beaucoup à faire. Prenons donc un peu de recul et considérons ses limites. La façon dont il se déroule, par exemple : on enregistre les informations, puis on obtient une liste, et l'on peut enfin demander la recherche d'un nom donné.
Et si jamais ?
Et si jamais cet ordre ne vous convenait pas ? Si vous préfériez commencer par la recherche d'un nom enregistré la veille, ou bien ajouter des noms et des numéros de téléphone à ceux qui existent déjà ? Étudier et résoudre ce type de problème, c'est cela la programmation. BASIC, vous le savez, a la bonté de vous permettre l'insertion de nouvelles instructions dans un programme existant, mais un bon programmeur ne doit pas se laisser surpréindre.
Un autre inconvénient, de taille, tient au fait que le programme stocke le contenu des tableaux dans une partie de la mémoire effacée à chaque nouvelle excursion. Comme il est hors de question que vous entriez à chaque fois toutes vos informations à la main, il faudra vous réserver la possibilité, d'une part, de sauvegarder les valeurs des variables NOMS et TELS avant d'éteindre votre ordinateur et, d'autre part, de charger ces valeurs lors de l'exécution du programme.
Réponses
Voici comment nous allons résoudre le problème du déroulement des tâches : nous allons faire en sorte qu'en début d'exécution, le programme nous propose un choix entre les différentes opérations qu'il est capable d'effectuer. Ce programme, de type « pilote par menu », affiche effectivement à l'écran un menu des options proposées. Vous êtes-vous déjà servi d'un distributeur automatique de billets ? Si oui, vous avez déjà eu affaire à un programme piloté par menu. Incorporons ce menu à notre programme :
32 PRINT "1. ajouter un correspondant" 33 PRINT "2. lister les correspondants" 34 PRINT "3. consulter le répertoire" 35 PRINT "4. sauvegarder le répertoire" 36 PRINT "5. charger le répertoire" 37 INPUT "votre choix (puis ENTER)"; ch 38 ON ch GOSUB 40,90,130
85 RETURN 125 RETURN 170 RETURN 200 RETURN
Comme vous pouvez le constater, le programme affiche maintenant le menu des options, puis introduit dans la variable ch le numéro entré au clavier (INPUT). En passant sur l'instruction ON ch GOSUB (ligne 38), il lancera le premier sous-programme (ligne 38) si ch = 1, le deuxième (ligne 90) si ch = 2 et ainsi de suite.
Maintenant que chacune des fonctions est devenue un sous-programme, il faut obligatoirement en indiquer la fin par une instruction RETURN, ce que nous avons fait.
Vous souvenez-vous du mode d'exécution de RETURN ? À la fin du sous-programme, cette instruction BASIC renvoie le programme à la ligne suivant immédiatement l'instruction GOSUB correspondante, c'est-à-dire, dans notre cas, à la ligne située après 38 (notre programme se poursuivrait donc à partir du point d'entrée des informations, ligne 40). Pour éviter cela, introduisons la ligne :
... afin de faire boucler le programme sur l'affichage du menu. Faites encore tourner le programme pour constater les améliorations apportées.
Parfait! Voyons maintenant comment notre programme se présente (si celui-ci n'est pas arrêté, faites [ESC] deux fois. Tapez :
Et voici ce que vous devriez avoir sous les yeux :
10 REM répertoire téléphonique 20 DIM NOM(100) 30 DIM TEL(100) 32 PRINT"1. ajouter un correspondant". 33 PRINT"2. lister les correspondants". 34 PRINT"3. consulter le répertoire". 35 PRINT"4. sauvegarder le répertoire".
36 PRINT"5. charger le repertoire"
37 INPUT"voite choix (puis ENTER)";ch
38 ON ch GOSUB 40,90,130
39 GOTO 32
40 FOR x=1 TO 100
45 CLS
47 PRINT"pour arreter appuyer [ENTER]"\n50 INPUT "nom";NOM$(x)
55 IF NOM$(x)=""" THEN 80
60 INPUT "telephone";TEL$(x)
70 NEXT
80 PRINT"entree des donnees terminate."
85 RETURN
90 FOR x=1 TO 100
95 IF NOM$(x)=""" THEN 120
100 PRINT NOM(x);""";TEL(x)
110 NEXT
120 PRINT"fin de liste"
125 RETURN
130 INPUT "nom a trouver";RECHERCHE$
140 FOR x=1 TO 100
150 IF INSTR(NOM$(x),RECHERCHE)=0 THEN 180
160 PRINT NOM(x);""";TEL(x)
170 RETURN
180 NEXT
190 PRINT"ce nom n'est pas repertorie."
200 RETURN
Vous remarquez qu'à certains endroits nous commençons à manquer de place pour insérer de nouvelles lignes. Nous allons en créer et remettre un peu d'ordre en RENUM-erotant les lignes. Faites:
RENUM LIST
Vous devez maintenant obtenir
10 REM repertoire telephonique
20 DIM NOM$ (100)
30 DIM TEL$ (100)
40 PRINT"1. ajouter un correspondant"
50 PRINT"2. lister les correspondants"
60 PRINT"3. consulter le repertoire"
70 PRINT"4. sauvegarder le repertoire"
80 PRINT"5. charger le repertoire"
90 INPUT"voitre choix (puis ENTER)";ch
100 ON ch GOSUB 120,210,270 110 GOTO 40 120 FOR x=1 TO 100 130 CLS 140 PRINT "pour arreter appuyer [ENTER]" 150 INPUT "nom"; NOM$(x) 160 IF NOM$(x)="" THEN 190 170 INPUT "telephone"; TEL$(x) 180 NEXT 190 PRINT "entree des donnees terminee." 200 RETURN 210 FOR x=1 TO 100 220 IF NOM$(x)="" THEN 250 230 PRINT NOM(x); " "; TEL(x) 240 NEXT 250 PRINT "fin de liste" 260 RETURN 270 INPUT "nom a trouver"; RECHERCHE$ 280 FOR x=1 TO 100 290 IF INSTR(NOM(x), RECHERCHE)=0 THEN 320 300 PRINT NOM(x); " "; TEL(x) 310 RETURN 320 NEXT 330 PRINT "ce nom n'est pas dans le repertoire." 340 RETURN
Voilà qui est. Continuons ! Il nous faut MAINTENANT une instruction qui fera en sorte que chaque nouvelle information enregistrée soit rangée à l'intérieur de la première case vide disponible dans le tableau. Nous allons pour cela nous servir d'une nouvelle instruction : LEN. Celle-ci permet de calculer la longueur d'une chaîne. Voici ce qu'il faut indiquer à l'ordinateur:
Si (IF) la longueur (LENGTH) de NOMS(x) est supérieure à 0, autrement dit si cette case est déjà occupée, il faut alors (THEN) passer directement à la ligne 180 (qui donnera la référence de la case suivante).
Nul besoin, on le voit, d'être doué en anglais pour parler BASIC. Toutefois, c'est avant tout une question de bon sens!
Enfantin, n'est-ce pas ? Avec votre liste des mots-clés de BASIC, et un peu de réflexion, aucune difficulté ne pourrait vous arrêter. Vous trouverez toujours une instruction répondant exactement à vos besoins et, avec l'habitude, les solutions vous viendront à l'esprit comme par miracle.
Voyons maintenant comment sauvegarder les valeurs des variables afin de pouvoir les recharger lorsqu'on exécute le programme. Vous savez, depuis la partie 7 du Cours Elémentaire, que l'on peut sauvegarder le programme lui-même au moyen de l'instruction SAVE. Cependant, ce programme n'est qu'un cadre permettant l'entrée des valeurs (au clavier) et leur sortie (sur l'écran). En sauvegardant le programme (SAVE), vous conservez ce cadre, mais pas les valeurs elles-mêmes.
Une partie du programme devra donc prévoir le stockage des valeurs sur disquette. Nous allons pour cela créer un « fichier de données » indépendant.
Il faudra d'abord ouvrir (OPEN) un fichier sortie (OUTPUT) que nous appellerons, par exemple, « données », puis écrire (WRITE) à l'intérieur de ce fichier les valeurs (de 1 à 100) des variables NOM(x) et TEL(x) et, pour finir, fermer (CLOSE) ce fichier avant de revenir au menu. Cette section sera placée à partir de la ligne 350. Laissons à l'instruction :
AUTO 350
... le soit de numéroter automatiquement les lignes :
350 OPENOUT "donnees"
360 FOR x=1 TO 100
370 WRITE #9, NOM(x), TEL(x)
380 NEXT
390 CLOSEOUT
400 PRINT "donnees sauvees"
410 RETURN
Une fois la ligne 410 entrée par [RETURN], faites [ESC] pour interrompre la numérotation automatique.
Nous venons d'introduire une option supplémentaire : il nous faut donc ajouter un numéro dans la liste située après l'instruction ON ch GOSUB, ligne 100. Rappelons la ligne 100 pour opérer cette modification, par EDIT :
100 ON ch GOSUB 120,210,270,350
Vous pourrez désormais, en choisissant l'option 4, demander au programme de stocker sur disquette les informations introduites.
Vous remarquerez qu'au moment où le programme écrit sur la disquette les valeurs de NOMS(x) et de TELS(x), le mot clé WRITE est suivi de l'expression #9. Le symbole # est un « sélecteur de canal » qui indique à l'ordinateur sur quel canal les données doivent être acheminées. Il en existe 10 dans un ordinateur :
Si on dirige les données sur les canaux 0 à 7 (de #0 à #7), celles-ci apparaisent sur l'écran (les canaux 0 à 7 sont réservés pour l'écran et y définissent des « fenêtres »).
Les données envoyées sur le canal # 8 sortiront sur l'imprimante, le cas échéant.
Enfin, les données dirigées sur le canal # 9 seront envoyées à l'unité de disques : c'est ce que nous avons fait ligne 370.
Une petite digression...
Juste un mot sur l'instruction AUTO que nous venons d'utiliser. Lorsque l'on entre, sans numéro de ligne, l'instruction :
... l'ordinateur se met à numéroter automatiquement les lignes, en commençant à 10, et en progressant de 10 en 10 à chaque nouvelle ligne entrée. Si les lignes 10, 20, 30, etc. existent déjà dans votre programme, vous les ferez apparaître sur l'écran une à une en actionnant la touche [RETURN]. Cette procédure peut vous faire gagner du temps lorsque vous désirez corriger toute une séquence de lignes espacées de 10 en 10.
Revenons à notre programme...
Après avoir écrit les instructions permettant le stockage de nos données sur disquette, il ne nous reste plus qu'à en prévoir le chargement, pour que notre programme soit terminé. Ajoutons donc une nouvelle option au menu en corrigeant encore une fois la ligne 100 :
$$ 1 0 0 \text {O N} \text {c h G O S U B} 1 2 0, 2 1 0, 2 7 0, 3 5 0, 4 2 0 $$
Voyons maintenant les instructions de chargement. Il faudra d'abord ouvrir (OPEN) le fichier entrée (INPUT) sur la disquette de «données», puis chercher à partir de cette disquette (canal # 9) toutes les valeurs, de 1 à 100, des variables NOM(x) et TEL(x), et enfin refermer le fichier avant de revenir au menu. Voici la procédure:
420 OPENIN "donnees"
430 FOR x=1 TO 100
440 INPUT #9,NOM(x),TEL(x)
450 NEXT
460 CLOSEIN
470 PRINT"donnees charges"
480 RETURN
La fin du commencement...
Le programme que nous venons d'écrire remplit maintenant tous les objectifs que nous nous étions fixés au départ lorsque que nous nous demandions « ce qu'il devrait faire » Il ne nous reste donc plus qu'à améliorer la « présentation des résultats » à l'écran.
Étincelle de la fin...
D'abord quelques instructions pour permettre le programme au propre:
34 Mode 1
Ceci détermine le mode d'affichage : l'écran sera effacé à chaque nouvelle exécution du programme. Écrivez ensuite :
36 WINDOW #1,7,36,10,14
Cette instruction un peu obscure ne doit pas vous effrayer : elle consiste simplement à dessiner sur l'écran une petite fenêtre pour encadrer le menu. Le code situé après le mot WINDOW indique à l'ordinateur sur quel canal cette fenêtre sera dirigée (souvenez-vous que nous en avons 8 à notre disposition, de #0 à #7). Sachant de plus que l'ordinateur, s'il n'a pas reçu d'indication particulière, choisit automatiquement le canal #0, on sait bien qu'il faut éviter de diriger notre petite fenêtre sur ce canal, sous peine de voir s'y afficher toutes les sorties du programme. Il faudra donc choisir un autre canal entre #1 et #7, d'où l'indication #1 sur notre exemple. Les quatre nombres qui viennent ensuite indiquent, de manière on ne peut plus simple, les dimensions de la fenêtre : ils donnent la position des bords gauche, droit, supérieur et inférieur de la fenêtre, en se référant aux nombres de colonnes et de lignes de l'écran (comme pour l'instruction LOCATE). Ainsi, dans notre exemple, après avoir précisé que nous utilisons le canal 1, nous déclarons que le bord de gauche commence en colonne 7, que celui de droit finit en colonne 36, que le bord supérieur commence en ligne 10 et que le bord inférieur finit en ligne 14.
Si nous voulons maintenant que le menu s'affiche dans cette fenêtre, il va nous falloir rectifier les lignes 40 à 80:
40 PRINT #1,"1. ajouter un correspondant" 50 PRINT #1,"2. lister les correspondants" 60 PRINT #1,"3. consulter le répertoire" 70 PRINT #1,"4. sauvegarder le répertoire" 80 PRINT #1,"5. charger le répertoire"
Ajoutons encore la ligne :
85LOCATE7,25
Cette instruction sert à positionner sur l'écran la demande de l'option. La présentation sera ainsi plus claire.
Vidons maintenant l'écran de son contenu avant chaque retour au menu :
110 GTO 34
... et après chaque sélection d'options :
95 CLS
Ajoutons pour finir les trois lignes suivantes, qui mettront l'ordinateur en attente avant de revenir au menu:
103LOCATE7,25 105 PRINT"appuyezune touche pour le menu" 107IF INKEYs = ""THEN 107
La ligne 103 indique l'endetroit auquel l'ordinateur devra afficher le message contenu en ligne 105. La ligne 107cherche quelle chaine de caractere vient d'être entree au clavier. Tant que celle-ci sera vide, c'est-à-dire tant que l'utiliseur n'aura pas actionne une touche qualconque du clavier, le programme bouclera sur cette instruction. Cette instruction a bien pour effet de mettre le programme en attente : celui-ci attend efectivement qu'une touche soit enonceee pour passer a la ligne suivante.
Le voilà donc terminé, ce programme ! Terminé, vraiment ?... vous pourriez encore lui demander de corriger ou d'effacer des noms et des numéros de téléphone. de trier la liste dans l'ordre alphabétique, ou de vous la « sortir » sur imprimante, ou bien encore, si vous êtes très ambitieux, d'émettre des signaux permettant d'appeler automatiquement votre correspondant en entrant simplement son nom au clavier, non sans avoir, bien entendu, demandé aux PTT l'autorisation de connecter votre ordinateur au poste téléphonique ! Ces perfectionnements sont pourtant de l'ordre du possible. À vrai dire, on peut améliorer et peaufiner ainsi ses programme à l'infini, surtout lorsqu'on dispose d'un outil informatique aussi puissant que le 6128. Il faut pourtant savoir s'arrêter et nous allons laisser ce « répertoireTéléphonique » à ce point en espérer que vous en savez désormais un peu plus sur l'art d'écrire un programme en partant de zéro. Il ne vous reste qu'à le remettre un peu en ordre en tapant une dernière instruction :
... puis à le stocker sur disquette, ou vous en débarrasser. Mais qui sait, il pourrait peut-être vous être utile... pour noter les numéros de téléphone de vos amis!
10 REM repertoire telephonique
20 DIM NOM$ (100)
30 DIM TEL$ (100)
40 MODE 1
50 WINDOW #1,7,36,10,14
60 PRINT #1,"1. ajouter un correspondant"
70 PRINT #1,"2. lister les correspondants"
80 PRINT #1,"3. consulter le repertoire"
90 PRINT #1,"4. sauvegarder le repertoire"
100 PRINT #1,"5. charger le repertoire"
110 LOCATE 7,25
120 INPUT"voite choix (puis ENTER)";ch
130 CLS
140 ON ch GOSUB 190,290,350,430,500
150 LOCATE 5,25
160 PRINT"appuyer une touche pour le menu"
170 IF INKEY$=" THEN 170
180 GOTO 40
190 FOR x=1 TO 100
200 CLS
210 IF LEN(NOM$(x))>0 THEN 260
220 PRINT"pour arreter appuyer [ENTER]"\n\n230 INPUT "nom";NOM$(x)
240 IF NOM$(x)="" THEN 270
250 INPUT "telephone";TEL$(x)
260 NEXT
270 PRINT"entree des donnees terminée."
280 RETURN
290 FOR x=1 TO 100
300 IF NOM$(x)="" THEN 330
310 PRINT NOM(x);"";TEL(x)
320 NEXT
330 PRINT"fin de liste"
340 RETURN
350 INPUT "nom a trouver";RECHERCHE$
360 FOR x=1 TO 100
370 IF INSTR(NOM(x),RECHERCHE)=0 THEN 400
380 PRINT NOM(x);"";TEL(x)
390 RETURN
400 NEXT
410 PRINT"ce nom n'est pas repertorie."
420 RETURN
430 OPENOUT "donnees"
440 FOR x = 1 TO 188 450WRITE #9, NOM(x), TEL(x) 468 NEXT 470 CLOSEOUT 480 PRINT"donnees sauvees" 490 RETURN 500 OPENIN "donnees" 510 FOR x = 1 TO 100 520 INPUT #9, NOM(x), TEL(x) 530 NEXT 540 CLOSEIN 550 PRINT"donnnees chargees" 560 RETURN run
Important
L'assimilation de la terminologie et de la notation adoptées dans ce chapitre est indispensable. Différents types de parenthèses expliquent l'entrée des commandes ; commencez donc par vous familiariser avec la signification de chacun.
Les commandes sans crochets doivent rester telles quelles. C'est le cas, par exemple, de la commande :
END
... et vous devez taper le mot END en toutes lettres.
Lorsqu'un élément apparait entre parenthèses angulaires, < > comme:
... il ne faut ni taper ces parenthèses, ni cc qu'elles renferment. L'exemple ci-dessus indique le type de données requises pour la commande. Par exemple:
EDIT
... signifie que vous devez taper :
EDIT 100
Les parenthèses () DOIVENT être tapées telles quelles. Dans l'exemple :
COS( )
... l'expression numérique doit se trouver entre parenthèses. Par exemple :
PRINT COS(45)
Les crochets, pour finir, contiennent les éléments facultatifs d'une commande ou d'une fonction. Par exemple:
RUN [ ]
... signifie que vous n'êtes pas obligé de faire suivre le mot clé RUN d'un paramètre, mais que vous pouvez, si vous le désirez, ajouter le paramètre. La commande peut alors être entrée de deux manières:
RUN... ou... RUN 100
Caractères spéciaux
& ou &H Préfixepour un nombre hexadecimal &X Préfixepour un nombre binaire
Types de données
Les chaînes peuvent avoir de 0 à 255 caractères et sont désignées par. On peut adjoindre une chaîne à une autre avec le signe + et à condition que la chaîne qui en résulte ne dépasse pas 255 caractères.
Les entiers varient de -32768 à +32767 et les nombres réels de -1.7E+38 à +1.7E+38, le plus petit nombre au-dessus de zéro étant 2.9E-39 et chaque nombre ayant 9 à 10 chiffres significatifs.
Une est une expression qui aboutit à une valeur numérique. Cela peut être des nombres, ou une variable numérique, ou des nombres opérant avec des variables numériques, à peu près tout ce qui n'est pas.
Un se rapporte à une pour désigner une fenêtre d'écran, une imprimante, une cassette ou une disquette vers laquelle le texte doit être acheminé.
Une décrit un paramètre complétant une liste d'éléments séparés par des virgules. Cette liste, pouvant contenir un ou plusieurs éléments, est limitée par la longueur de ligne.
Les différences indicateurs de type de données:
Réels (par défaut) $ Chaîne algébrique et numérique (alphanumeric)
Nous allons donner les mots clés du BASIC AMSTRAD sous la forme suivante :
Syntaxe
Example
Description
Mots clés associés
Les mots clés sont :
DES COMMANDES : opérations exécutées directement
DES FONCTIONS : opérations intervenant dans une expression
DES OPERATURS : agissant sur des arguments mathématiques.
Lors du listage d'un programme, le BASIC transforme en MAJUSCULES tous les mots clés tapés en minuscules. Les exemples de ce chapitre sont en MAJUSCULES tels qu'ils apparaissent après un LISTing. Il sera toutefois préféable que vous les tapiez en minuscules car les mots clés contenant une erreur resteront LISTés en minuscules, vous révélant ainsi vos erreurs de frappe.
Pour plus de détails sur le BASIC AMSTRAD 6128, consultez les spécifications SOFT967.
Mots clés...
ABS
ABS( )
PRINT ABS(-67.98) 67.98
FONCTION: Donne la valeur ABSolue de l'expression entre parenthèses. Les nombres négatifs perdent donc leur signe moins.
Mots clés associés : SGN
AFTER [, ] GOSUB
10 AFTER 250 GOSUB 60:CLS
20 PRINT"Devine une dette en 5 secondes"
30 a=INKEY;IF flag=1 THEN END
40 IF a<>CHR(INT(RND$26+97)) THEN 30
50 PRINT a$;" est exacte.tu as gagne!"
55 SOUND 1,478:SOUND 1,358:END
60 PRINT"Trop tard.J'ai gagne!"
70 SOUND 1,2000:flag=1:RETURN
COMMANDE: Appelle un sous-programme après (= AFTER en anglais) un certain délai. Le indique la durée de l'attente en multiples de 0,02 seconde. Le (qui peut être 0, 1, 2 ou 3) précise lequel des quatre chronomètres d'attente il faut utiliser.
Chacun des 4 chronomètres peut être associé à un sous-programme. Pour plus de détails concernant les interruptions, reportez-vous à la partie 2 du chapitre « A vos heures de loisir... »
Mots clés associés : EVERY, REMAIN, RETURN
AND
OPERATEUR: Effectue des opérations booléennes par bits sur des nombres entiers. Est égal à 0 sauf lorsque les deux bits d'arguments sont égaux à 1.
Pour toute information complémentaire sur la logique, consultez la partie 2 du chapitre « A vos heures de loisir... »
Mots clés associés : OR. NOT. XOR.
ASC ( )
PRINT ASC ^ x^ 120
FONCTION: Donne la valeur numérique du premier caractère d'une chaîne de caractères.
Mots clés associés : CHR
ATN ( )
PRINT ATN(1) 0.785398163
FONCTION: Calcule l'Arc Tangente (réduisant à un nombre réel en radians compris entre -PI/2 et +PI/2) de la valeur donnée.
A noter : les commandes DEG et RAD peuvent être utilisées pour spécifier explicitement que le résultat sera exprimé respectivement en degrés ou radians.
Mots clés associés : COS, DEG, RAD, SIN, TAN
AUTO [ ] [ ]
AUTO 100,50
COMMANDE: Générez automatiquement les numéros de ligne. Le paramètre facultatif < numéro de ligne > donne le premier numéro de ligne à générer. Si vous ne le précisez pas, les lignes sont générées à partir de 10.
L^ < increment >, également facultatif, fixe l'intervalle entre les numéros de ligne. En l'absence de spécification, il sera égal à 10. Si un numéro de ligne déjà utilisé est généré, le contenu de cette ligne apparaît à l'écran et peut éventuellement être modifié. La ligne affichée est ensuite remplacée en mémoire après activation de la touche [RETURN]. Pour arrêter la numérotation automatique des lignes, appuyez sur [ESC].
Mots clés associés : Aucun
BIN$ (< nombre entier sans signe>[,< nombre entier>] )
PRINTBIN*6480100000
FONCTION: Produit une chaîne de chiffres BINaires représentant la valeur du, à l'aide du nombre de chiffres binaires indiqué par le deuxième (entre 0 et 16). Si ce nombre est trop grand, le résultat commence par autant de zéros que nécessaire. S'il est trop petit, le résultat n'est pas tronqué mais converti en autant de chiffres que nécessaire.
Le < nombre entier sans signe> à convertir en binaire doit être compris entre 0 et 65535.
Mots clés associés : DEC, HEX, STR$
BORDER [. ]
10 REM 729 combinaisons de bordure
20 SPEED INK 5,5
30 FOR a=0 TO 26
40 FOR b=0 TO 26
50 BORDER a,b:CLS:LOCATE 14,13
60 PRINT"border";a;",";b
70 FOR t=1 TO 500
80 NEXT t,b,a
run
COMMANDE : Pour changer la couleur de la bordure d'écran. Si deux couleurs sont indiquées, elles alternent à la vitesse déterminée par la commande SPEED INK, le cas échéant. Les valeurs seront de 0 à 26.
Mots clés associés : SPEED INK
(Voir ON BREAK CONT, ON BREAK GOSUB, ON BREAK STOP)
CALL [,<liste de:>]
CALL 8
COMMANDE: Permet à un sous-programme externe d'être appelé à partir du BASIC. L'exemple ci-dessus réinitialise complètement l'ordinateur.
Utiliser avec précaution.
Mots clés associés : UNT
CAT
COMMANDE: Demande au BASIC de dire le catalogue de la disquette. Affiche en ordre alphabétique les noms de tous les fichiers présents ainsi que leur longueur (en arrondissant au kiloctet supérieur). Le nombre d'octets disponibles s'affiche également avec l'identification de la disquette et de l'utilisateur.
Cette commande n'a pas d'effet sur le programme en cours.
Mots clés associés : LOAD, RUN, SAVE
CHAIN {, }
CHAIN "testprog. bas", 350
COMMANDE: Charge un programme en mémoire à partir d'une disquette, remplaçant le programme existant. Le nouveau programme commence au début ou à partir de la ligne spécifique.
Les fichiers protégés (sauvegardés par la commande SAVE) peuvent être chargés et lancés par CHAIN.
Mots clés associés : CHAIN MERGE, LOAD, MERGE
CHAIN MERGE [, ]
[DELETE ]
CHAIN MERGE "partie2.bas",750, DELETE 480-680
COMMANDE: Charge en mémoire un programme sur disquette en le fusionnant au programme existant, puis lance le programme resultant, depuis le début ou à partir de la ligne spécifique par le paramètre en option. Si vous désirez effacer une partie du programme initial avant d'utiliser cette commande, vous pouvez spécifier le paramètre de la commande DELETE. Les nombres de ligne du programme initial identiques à ceux du programme à fusionner seront écrasées sur les nouvelles lignes. Les fichiers protégés (sauvegardés par la commande SAVE) ne peuvent PAS être fusionnés puis lancés par cette commande.
Mots clés associés : LOAD, MERGE, DELETE, CHAIN
CHRs(
10 FOR x=32 TO 255
20 PRINT x;CHR$ (x)
30 NEXT
run
FUNCTION: Convertit un < nombre entier> compris entre 0 et 255 en une chaîne de caractères équivalente à l'aide du jeu de caractères de l'AMSTRAD 6128, décrit dans la partie 3 du chapitre « Pour information... ». Les caractères 0 à 31 sont des caractères de contrôle. C'est pourquoi l'exemple ci-dessus affiche les entiers compris entre 32 et 255.
Mots clés associés : ASC
CINT (expression numérique)
10 n=1.9999
20 PRINT CINT(n) run 2
FONCTION: Convertit une valeur numérique en un entier arrondi compris entre -32768 et 32767.
Mots clés associés : CREAL, FIX, INT, ROUND, UNT
CLEAR
COMMANDE : Efface toutes les variables, fichiers ouverts, tableaux et fonctions utilisateurs, le mode de calcul en BASIC s'effectue en radians.
Mots clés associés : Aucun
10 CLS
20 PRINT" tapez plusieurslettres maintain!"
30 FOR t=1 TO 3000
40 NEXT
50 CLEAR INPUT
run
COMMANDE: Efface toutes les données entrées à partir du clavier, se trouvant dans le tampon.
Pour expérimenter cette commande, lancez le programme ci-dessus et tapez les lettres lorsque vous y êtes invités. Supprimez ensuite la ligne 50 du programme, relancez-le et voyez la différence.
Mots clés associés : INKEY, INKEYS, JOY
CLG [ ]
LOCATE 1,20 CL63
COMMANDE: Efface l'écran graphique et le ramène à sa couleur de fond. Si est spécifiée, le fond est de la couleur fixée en accord.
Mots clés associés : CLS. GRAPHICS PAPER, INK, ORIGIN
CLOSE IN
COMMANDE: Ferme tout fichier d'entrée ouvert sur la disquette (voir OPENIN).
Mots clés associés : EOF, OPENIN
CLOSEOUT
COMMANDE: Ferme tout fichier ouvert en sortie sur la disquette. (voir OPENOUT).
Mots clés associés : OPENOUT
CLS [ # ]
10 PAPER #2,3
20 CLS #2
run
COMMANDE: Efface la fenêtre d'écran spécifiée par le et lui donne sa couleur de papier. En l'absence de, 0 est pris par défaut.
Mots clés associés : CLG, INK, PAPER, WINDOW
CONT
COMMANDE: Continue l'exécution du programme après un STOP, ou deux activations de la touche [ESC], si le programme n'a été ni modifié ni protégé. Des commandes directes peuvent être tapées avant reprise du programme.
Mots clés associés : STOP
COPYCHRS (# )
10 CLS
20 PRINT"coin superieur"
30 LOCATE 1,1
40 a=COPYCHR(#0)
50 LOCATE 1,20
60 PRINT a$
run
FONCTION: Copie un caractère à partir de la position du curseur dans le canal (qui DOIT être spécifique). Le programme ci-dessus copie un caractère de l'emplacement 1,1 (angle supérieur gauche) et le produit en 1,20. Si le caractère lu n'est pas reconnu, une chaine nulle est renvoyée.
Mots clés associés : LOCATE
COS( )
DEG PRINT COS(45) 0.707106781
FUNCTION: Calcule le COSinus de l'expression numérique>.
DEG et RAD peuvent servir à exprimer l'argument en degrés ou en radians, respectivement.
Mots clés associés : ATN, DEG, RAD, SIN
CREAL ( )
10 a=PI
20 PRINT CINT(a)
30 PRINT CREAL(a)
run
3
3.14159265
FUNCTION: Convertit l' en nombre réel.
Mots clés associés : CINT
DEC$ (, )
PRINT DEC$ (10↑7, "f f # # # # # # # , # #")
f 10,000,000.00
FONCTION: Donne une représentation DECimale de l'expression numérique, utilisant le indiqué.
Le modèle de format ne peut contenir QUE les caractères :
+ £ $ * # . . ↑
L'emploi de ces « indicateurs de format » est décrit au mot clé PRINT USING.
Mots clés associés : BIN, HEX, PRINT USING, STR$.
DEF FN [( )]=
10 t=TIME/300 20DEFFNchrono=INT(TIME/300-t) 30 EVERY 100 GOSUB 50 40 GOTO 40 50 PRINT"Le programme tourne depuis"; 60 PRINT FNchrono;"seconds" 70 RETURN run
COMMANDE: Le BASIC permet au programme de définir une fonction retournant une valeur unique et de l'utiliser. DEF FN est la partie définition du mécanisme de création d'une fonction spécifique, travaillant d'une manière similaire aux fonctions existantes du BASIC (COS, SIN, ATN, etc.).
(Dans l'exemple ci-dessus la valeur de la fonction FNchrono est constamment mise à jour, même si le programme est suspendu par [ESC] ou arrêté par double [ESC], puis relancé.)
Mots clés associés : Aucun
CURSOR [ ] [ ]
10 CURSOR 1
20 PRINT "question ?";
30 a=INKEY; IF a$="" THEN 30
40 PRINT a$
50 CURSOR 0
run
COMMANDE: Active ou désactive l'indicateur système ou utilisateur. Les paramètres et doivent être sur 0 (inactif) ou 1 (actif). Dans la commande INKEYS ci-dessus, le curseur a été rendu visible par fixation de l'indicateur système sur 1 (à la ligne 10).
Le curseur s'affiche lorsque les deux indicateurs sont sur 1. Le curseur système est automatiquement activé pour la commande INPUT et désactivé pour INKEYS.
Il est préférible de désactiver le curseur pour l'affichage d'un texte à l'écran.
Vous pouvez omettre l'un des indicateurs mais pas les deux. Si un paramètre est omis, son état est inchangé.
Mots clés associés : LOCATE
DATA <liste de:
10 FOR x=1 TO 4
20 READ nom,prenom
30 PRINT"Mr. "; nom"; ";prenom$
40 NEXT
50 DATA DUPONT,Olivier, DURAND, Francois
60 DATA LAMIE,Frederic,MouLIN,Daniel
COMMANDE: Déclare des données constantes à l'intérieur d'un programme. Ces données peuvent être affectées à une variable par la commande READ, après quoi le pointeur passe à l'objet suivant de la liste DATA. La commande RESTORE peut servir à déplacer le pointeur sur une position spécifique de DATA.
Pour de plus amples informations, consultez la partie 2 du chapitre « A vos heures de loisir... »
Mots clés associés : READ, RESTORE
DEC$ (, )
PRINT DEC$ (10↑7, "f f# # # # # # # # , # #") £10,000,000.00
FUNCTION: Donne une représentation DECimale de l'expression numérique, utilisant le indiqué.
Le modèle de format ne peut contenir QUE les caractères:
+ £ $ * # . . ↑
L'emploi de ces « indicateurs de format » est décrit au mot clé PRINT USING.
Mots clés associés: BIN, HEX, PRINT USING, STR$
DEF FN [( )] =
10 t=TIME/300
20 DEF FNchrono=INT(TIME/300-t)
30 EVERY 100 GOSUB 50
40 GOTO 40
50 PRINT"Le programme tourne depuis";
60 PRINT FNchrono; "seconds"
70 RETURN
run
COMMANDE: Le BASIC permet au programme de DEFinir une FoNction returnant une valeur unique et de l'utiliser. DEF FN est la partie définition du mécanisme de création d'une fonction spécifique, travaillant d'une manière similaire aux fonctions existantes du BASIC (COS, SIN, ATN, etc.).
(Dans l'exemple ci-dessus, la valeur de la fonction FNchrono est constamment mise à jour, même si le programme est suspendu par [ESC] ou arrêté par double [ESC], puis relancé.)
Mots clés associés : Aucun
DEFINT
DEFINT <liste de:variables>
10 DEFINT n
20 nombre=123.456
30 PRINT nombre
run
123
COMMANDE: Définit le type de variable par DEFaut, le type étant entier. Lorsqu'une variable intervient sans marquée (! % $), le type par défaut est automatiquement mis en œuvre. Cette commande définit le type par défaut des variables selon la première lecture du nom de la variable. Elle peut être suivie d'une liste d'initiales. Par exemple:
... ou d'une fourchette d'initiales :
DEFINTa-2
Mots clés associés : DEFREAL, DEFSTR
DEFREAL <liste de:
DEFREAL x, a-f
COMMANDE: Définit le type de variable par DEFaut, le type étant réel. Lorsqu'une variable intervient sans identificateur de type (! % $), le type par défaut est automatiquement mis en œuvre. Le type de la variable sera déterminé suivant la première lecture du nom de la variable. Elle peut être suivie d'une liste d'initiales:
... ou d'une fourchette d'initiales :
DEFREAL a-z
Mots clés associés : DEFINIT, DEFSTR
DEFSTR <liste de:
10DEFSTRn 28 nom="Amstrad" 30 PRINT nom
run
Amstrad
COMMANDE : Définit le type de variable par défaut, le type étant une chaîne. Lorsqu'une variable intervient sans identificateur (! % $) le type par défaut est automatiquement mis en œuvre. Le type de la variable est déterminé selon la première lecture de son nom. La commande peut être suivie d'une liste d'initiales :
... ou d'une fourchette d'initiales :
DEFSTR a-z
Mots clés associés : DEFINT, DEFREAL
DEG
COMMANDE: Établit le mode de calcul en DEGrés. Par défaut, les fonctions SIN, COS, TAN et ATN considèrent que l'argument qui leur est transmis est exprimé en radians. La commande reste valable jusqu'à ce qu'on utilise les commandes RAD ou NEW, CLEAR, LOAD, RUN, etc.
Mots clés associés : ATN, COS, RAD, SIN, TAN
DELETE
DELETE 100-200
COMMANDE: Efface une partie du programme défini dans l'.
Il n'est pas nécessaire d'indiquer la ligne de départ ou la ligne d'arrivée pour effacer le programme « depuis le début » ou « jusqu'à la fin »
DELETE -200
... ou:
DELETE 50-
... ou:
DELETE
... qui efface la totalité du programme.
IAA
Mots clés associés : CHAIN MERGE, RENUM
LOAD xyz. abc
XYZ. ABC not found
Ready
PRINT DERR
FUNCTION: Rapporte le dernier code d'erreur envoyé par le système de gestion de la Disquette. La valeur de DERR peut servir à confirmer l'erreur détectée. Consultez la liste des messages d'erreur du chapitre « Pour information... »
Mots clés associés : ERL, ERR, ERROR, ON ERROR GOTO, RESUME
10 CLS:TAG:EVERY 10 GOSUB 90
20 x1=RND320:x2=RND320
30 y=200+RND200:c=CHR(RND255)
40 FOR x=320-x1 TO 320*x2 STEP 4
50 DI
60 MOVE 320,0,1:MOVE x-2,y:MOVE x,y
70 PRINT" ";c$::FRAME
80 EI:NEXT:GOTO 20
90 MOVE 320,0:DRAW x+8,y-16,1:RETURN
run
COMMANDE: Désactive une Interruption (autre que [ESC]) jusqu'à ce qu'elle soit réactivée directement par une commande EI ou indirectement par un [RETURN] à la fin d'un sous-programme d'interruption GOSUB.
L'entrée dans un sous-programme d'interruption désactive automatiquement les interruptions de priorité égale ou inférieure.
On l'utilise quand le programme doit s'exécuter sans interruption, par exemple quand deux sous-programmes sont en compétition pour utiliser les ressources de l'ordinateur (les ressources graphiques dans le programme ci-dessus, par exemple).
Pour de plus amples informations sur les interruptions, consultez la partie 2 du chapitre « A vos heures de loisir... »
Mots clés associés : AFTER, EI, EVERY, REMAIN
DIM <liste de:
10 CLS
20 DIM ami(5),tel(5)
30 FOR n=1 TO 5
40 PRINT"telephone No";n
50 INPUT "entrez le nom";amis(n)
60 INPUT "entrez le numero de tel.";tel$(n)
70 PRINT
80 NEXT
90 FOR n=1 TO 5
100 PRINT n;ami(n),tel(n)
110 NEXT
run
COMMANDE: Dimensionne un tableau. Cette commande alloue l'espace requis aux tableaux et spécifie les valeurs d'indices maximales. Le BASIC doit connaître l'espace réservé pour un tableau, en l'absence de spécification il prend 10 comme valeur par défaut.
Un tableau est identifié par une, à savoir un nom de variable accompagné d'un ensemble d'indices afin que chaque « élément » du tableau ait sa propre valeur d'indice.
- Une boucle FOR NEXT peut servir à contrôler le tableau en traitant chaque élément du tableau à tour de rôle.
La valeur minimale d'un indice est zéro (c'est le premier élément d'un tableau).
Les tableaux peuvent être multi-dimensionnels et chaque élément est lié référencé par sa position. Par exemple, dans un tableau dimensionné par :
DIM position (20, 20, 20)
... un élément du tableau sera référencé de la façon suivante :
position(4,5,6)
Mots clés associés : ERASE
DRAW, [,[,][,]
10 MODE 0: BORDER 0: PAPER 0: INK 0, 0
20 x = RND640; y = RND400; z = RND$15
30 DRAW x, y, z
40 GOTO 20
run
COMMANDE: Trace une ligne sur l'écran entre la position du curseur graphique et une position absolue spécifiée par les coordonnées x et y. L'<encre> de tracage peut être spécifiée (entre 0 et 15).
Le facultatif détermine l'interaction de l'encre sur l'affichage lié à l'écran. Les quatre sont les suivants :
0 : Normal 1 : XOR (OU exclusif) 2 : AND (ET) 3 : OR (OU)
Mots clés associés : DRAWR. GRAPHICS PEN, MASK
DRAWR, [,[,],]
10 CLS:PRINT"tu montes au premier !?"
20 MOVE 0,350:FOR n=1 TO 8
30 DRAWR 50,0
40 DRAWR 0,-50
50 NEXT:MOVE 348,0:FILL 3
60 GOTO 60
run
COMMANDE: Trace une ligne sur l'écran graphique à partir du curseur graphique jusqu'à la position spécifique par les. L' du trace peut être spécifique (entre 0 et 15).
Le facultatif déterminé l'interaction de l'encre sur l'affichage présent à l'écran. Les 4 sont les suivants:
0 : Normal 1 : XOR (OU exclusif) 2 : AND (ET) 3 : OR (OU)
Mots clés associés : DRAW, GRAPHICS PEN, MASK
EDIT
EDIT 20
COMMANDE: Affiche la ligne du programme ainsi que le curseur, prêt à l'édition.
Mots clés associés : AUTO, LIST
E I
COMMANDE: Active (Enables) une Interruption désactivée par DI.
Des interruptions désactivées par un sous-programme d'interruption sont automatiquement rétablies par la commande RETURN, en fin de sous-programme.
Pour de plus amples informations, consultez la partie 2 du chapitre « À vos heures de loisir... »
Mots clés associés : AFTER, DI, EVERY, REMAIN
(voir IF)
END
END
COMMANDE: Met fin à l'exécution d'un programme et rétablit le mode direct. Un programme peut contenir un nombre quelconque de commandes END (elle est implicite à la fin de tout programme BASIC AMSTRAD).
Mots clés associés : STOP
ENT [, ] [, ] [, ] [, ] [, ]
10 ENT 1,10,-50,10,10,50,10 20 SOUND 1,500,200,10,,1 run
COMMANDE: Définit l'enveloppe de tonalité spécifiée par le (entre 1 et 15) utilisée avec la commande SOUND. Si le est négatif (entre -1 et -15) l'enveloppe se répète jusqu'à la fin de la durée du son fixée par la commande SOUND.
Chaque peut contenir 2 ou 3 paramètres:
Dans le cas de trois paramètres, ceux-ci sont:
< nombre de pas >
Paramètre 1: < nombre de pas >
Spécifie le < nombre de pas> de variation de tonalité à l'intérieur de la section d'enveloppe. Par exemple, dans une section de note durant 10 secondes, vous pouvez fixer 10 pas de 1 seconde chacun. Dans ce cas, le < nombre de pas> sera 10.
Le < nombre de pas> peut varier de 0 à 239.
Parametre 2:
Doit être compris entre -128 et +127. Les pas négatifs augmentent la hauteur de la note, les pas positifs l'abaiscent. La période sonore minimale est de 0. Toutes les périodes sonores disponibles sont présentées au chapitre « Pour information... »
Parametre 3:
Spécifie la durée d'un pas en unités de 0,01 seconde. Elle peut varier de 0 à 255 (0 a la valeur 256), la durée maximale d'un pas est donc de 2,56 secondes. Si vous n'utilisez que deux paramètres, ce sont :
période sonore>, Paramètre 1: Donne la nouvelle valeur de la période. (Voir le paramètre 2 de la commande SOUND) Paramètre 2: Spécifie la durée du pas unique en unités de 0,01 seconde. Peut varier entre 0 et 255 (0 ayant la valeur 256), soit 2,56 secondes. GENÉRALITÉS La durée totale des pas ne doit pas dépasser le paramètre de la commande SOUND, car le son se termine alors avant d'avoir traversé la totalité des pas. (Le reste de l'enveloppe de tonalité est alors ignoré). De même, si la de la commande SOUND dépasse la durée totale des pas, le son se poursuit après avoir traversé tous les pas et demeure constant à la tonalité finale. La commande ENT peut s'accompagner de 5 < sections d'enveloppe> différentes (chaque constituée des 2 ou 3 paramètres ci-dessus). Le premier pas d'une enveloppe de tonalité s'exécute immédiatement. Chaque fois qu'une nouvelle enveloppe est attribuée à un numéro d'enveloppe déterminé, la définition précédente est perdue. Un < numero d'enveloppe> sans < section d'enveloppe> annule toutes les spécifications précédentes. Pour de plus amples informations, consultez la partie 2 du chapitre « A vos heures de loisir... » Mots clés associés : ENV, SOUND ENV ENV <numero d'enveloppe> [,<section d'enveloppe>] [,<section d'enveloppe>] [,<section d'enveloppe>] [,<section d'enveloppe>] [,<section d'enveloppe>] 10 ENV 1,15,-1,10,15,1,10 20 SOUND 1,200,300,15,1 run COMMANDE: Définit l'ENveloppe de Volume correspondant au (entre 1 et 15), utilisé avec la commande SOUND. Elle peut contenir 2 ou 3 paramètres : Pour 3 paramètres : < nombre de pas>,,. Paramètre 1: < nombre de pas> Spécifie le < nombre de pas> de volume qu'un son doit traverser dans la section d'enveloppe. Par exemple, dans une section de 10 secondes, vous pouvez fixer 10 pas de volume d'une seconde. Le paramètre < nombre de pas> est égal à 10. Le paramètre peut varier de 0 à 127. Paramètre 2: Peut faire varier le volume de 0 à 15 par rapport au pas précédent. Les 16 volumes différents sont les mêmes que ceux de la commande SOUND. Le paramètre peut cependant varier de -128 à +127, le volume revenant à 0 après avoir atteint 15. Paramètre 3: Spécifie la durée d'un pas en unités de 0,01 seconde. Peut varier de 0 à 255 (0 à la valeur 256), soit 2,56 secondes. Pour 2 paramètres :, Paramètre 1: Spécifie la valeur à envoyer au registre d'enveloppe contenu dans le générateur sonore. Paramètre 2: Spécifie la valeur à envoyer aux registres de période d'enveloppe contenus dans le générateur sonore. L'utilisation d'enveloppes matérielles suppose la connaissance du matériel. Si vous ne l'avez pas, il vaut mieux utiliser une enveloppe logicielle intégrant un paramètre ajustable. GENÉRALITÉS La durée totale des pas ne doit pas dépasser le paramètre de de la commande SOUND, le son se termine alors avant d'avoir traversé tous les pas de volume (le reste de l'enveloppe est ignoré). De même, si le paramètre de de la commande SOUND dépasse la durée totale des pas, le son se poursuit après avoir traversé tous les pas de volume et demeure constant au volume final. La commande ENV peut contenir 5 sections d'enveloppes différentes (constituées des 2 ou 3 paramètres ci-dessus). Le premier pas d'une enveloppe de volume s'exécute immédiatement. Chaque fois qu'une nouvelle enveloppe est attribuée à un numéro d'enveloppe déterminé, la définition précédente est perdue. La spécification d'un sans annule toutes les valeurs précédentes. Pour de plus amples informations, consultez la partie 2 du chapitre « A vos heures de loisir... » Mots clés associés : ENT, SOUND EOF EOF 10 OPENIN "ex1. bas" 20 WHILE NOT EOF 30 LINE INPUT #9, a40 PRINT a 50 WEND 60 CLOSEIN run fajix ton FUNCTION: Pour tester l'état d'un fichier ouvert. Donne - 1 (vrai) si l'on est en fin de fichier (End Of File) ou si aucun fichier n'est ouvert, sinon donne 0 (faux). Mots clés associés : OPENIN, CLOSEIN ERASE ERASE <liste de: <nom de variable> DIM a(100), b$(100) ERASE a, b$ COMMANDE: Qu