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

4/1.7 Basic MALLARD sur CPC|27e Complément)Coding Classeurs Weka

4/1.7 Basic MALLARD sur CPC

Une brocante, les petites annonces, le rebut, trois chances de disposer d'un Amstrad PCW 8256 ou 8512. A moins que vous n'en disposiez d'un sur votre lieu de travail, et que vous désiriez travailJer le Basic MALLARD sur le CPC familial.

Qu'il soit encore en état, ou hors d'usage, si vous l'avez acheté accompagné de la disquette contenant le Basic MALLARD, vous pourrez utiliser cette dernière sur votre CPC, pourvu qu'il supporte le système d'exploitation CP/M.

Une disquette exploitable sur CPC

Le format des disquettes sur CPC n'est pas identique à celui des PCW. Seules les disquettes formatées sur CPC peuvent être exploitées sur PCW.

Aussi, pour utiliser le Basic MAILLARD sur CPC :

  • soit vous possédez un très bon copieur de disquette, et le transfert sur une disquette formattée sur CPC est possible ;
  • soit le PCW acquis est encore en état, et il vous suffit de formatter une disquette 3 pouces sur le CPC, puis d'effectuer, à l'aide de PIP.COM par exemple, une copie du Basic MALLARD, sur cettte disquette, depuis le PCW ;
  • soit le PCW est hors d'usage, dans ce cas, il ne vous reste plus qu'à partir à la chasse d'un possesseur de PCW pour lui demander de vous effectuer une copie selon le procédé décrit ci-dessus.

Une fois ce Basic sur la disquette, il vous suffit d'effectuer une copie des fichiers SETKEYS.COM et KEYS.CCP du CP/M d'origine sur votre CPC, ainsi que du fichier SUBMIT.COM.

Vous devrez ensuite créer, à l'aide de ED.COM ou d'un éditeur quelconque le fichier de lancement comportant les commandes suivantes (vous pourrez par exemple l'appeler BASIC.SUB) :

SETKEYS KEYS.CCP
BASIC

Le lancement du Basic MALLARD s'effectuera par :

SUBMIT BASIC.SUB

Si vous avez pris soin de formatter votre disquette au format CP/M et y avez installé CP/M 3.0, vous pourrez appeler le fichier de lancement du nom de PROFILE.SUB, ce qui permettra un lancement automatique du Basic MALLARD lors du BOOT de CP/M.

Intérêt du basic mallard

Bien que très performant, le Basic LOCOMOTIVE possède ses limites en ce qui concerne la gestion de fichiers, limites que le Basic MALLARD permet de combler facilement, grâce à ses commandes de gestion de fichiers à accès direct et de fichiers indexés à l'aide de JET-SAM.

De plus vous aurez accès aux calculs en double précision, et bien d'autres possibilités.

Un petit point noir concerne l'utilisation graphique, pour laquelle vous devrez hélas écrire quelques routines en langage machine.

Le Basic MALLARD peut fonctionner aussi bien sous CP/M 2.2 que sous CP/M 3.0, mais son utilisation sous CP/M 2.2 reste très limitée car vous ne disposerez alors que d'envrion 9 K-octets, contre 31 K-octets sous CP/M+.
Rappel des commandes du basic mallard

Afin de vous permettre de déterminer si le Basic MALLARD vous sera utile, nous vous fournissons ci-après un condensé des commandes et instructions disponibles sur CPC, avec en plus, la liste des Tokens correspondants (voir Partie 4, chapitre 1.6.6 pour des explications sur la signification de ce terme).

Cette liste pourra, de plus, vous servir d'aide mémoire lors de la programmation, et vous évitera les fastidieuses recherches dans le manuel du PCW.
Les fonctions standard

ABS - Token : FF 01 -> Fournit la valeur absolue de l'expression numérique.

ASC - Token : FF 02 -> Fournit la valeur ASCII du premier caractère d'une chaîne alphanumérique.

ATN - Token : FF 03 -> Fournit la valeur, en radian, de l'arc tangente d'une valeur numérique.

AUTO - Token : 80 -> Permet la numérotation automatique des lignes de basic lors de la saisie d'un programme.

CALL-Token : 81 -> Permet d'appeler des sous-programmes en langage machine à partir de Basic.

CDBL - Token : FF 04 -> Fournit la valeur d'une expression numérique au format double précision.

CHAIN - Token : 82 -> Charge et lance un programme à partir du programme en court.

CHAIN MERGE - Token : 82 A8 -> Même fonction que CHAIN.

CHR$ - Token : FF 05 -> Fournit le caractère alphanumérique dont le codage est donné en ASCII par l'expression numérique.

CINT - Token : FF 06 -> Fournit la valeur de l'expression numérique au format entier.

CLEAR - Token : 83 Réinitialise les variables, efface les tableaux, supprime les fonctions et ferme les fichiers.

COMMON - Token : 85 -> Permet de déclarer des variables à conserver lors de l'utilisation de CHAIN, CHAIN MERGE et COMMON RESET.

COMMON RESET - Token : 85 BC -> Même effet que CLEAR, hormis la préservation des variables déclarées par COMMON.

CONT - Token : 86 -> Permet de relancer un programme interrompu par STOP ou < CTRL > < C >.

COS - Token : FF 07 -> Fournit le cosinus de l'expression numérique donnée en radians.

CLOSE - Token : 84 -> Ferme les fichiers en cours d'utilisation.

CSNG - Token : FF 08 -> Fournit la valeur de l'expression numérique au format simple précision.

CVD - Token : FF 09 -> Fournit la valeur en double précision d'une chaîne de caractères créée par MKD$.

CVI - Token : FF 0A -> Fournit la valeur entière d'une chaîne de caractères créée par MKD$.

CVIK - Token : FF 2A -> Fournit la valeur entière d'une chaîne de caractères générée par MKIK$.

CVS - Token : FF 0B -> Fournit la valeur en simple précision d'une chaîne de caractère générée par MKS$.

CVUK - Token : FF 2B -> Fournit la valeur entière d'une chaîne de caractères générée par MKUK$.

DATA - Token : 87 -> Permet de définir une liste de valeurs pouvant être lues par READ.

DEC$ - Token : FF 72 -> Fournit une chaîne de caractères représentative de l'expression numérique selon un format donné.

DEF FN - Token : 88 DE -> Permet de définir des fonctions dans un programme.

DEF USR - Token : 88 E5 -> Permet de définir un sous-programme en langage machine en tant que fonction.

DEFDBL - Token : 89 -> Permet de définir le type de variables au format double précision.

DEFINT - Token : 8A -> Permet de définir le type de variables au format entier.

DEFSNG - Token : 8C -> Permet de définir le type de variables au format simple précision.

DEFSTR - Token : 8D -> Permet de définir le type de variables au format chaîne alphanumérique.

DELETE - Token : 8E -> Permet de supprimer une série de lignes du programme Basic.

DIM -Token : 8F -> Permet de déclarer des tableaux.

DIR - Token : 90 -> Affiche le catalogue à l'écran.

DISPLAY - Token : D0 -> Affiche le contenu d'un fichier.

EDIT -Token : 91 -> Edite une ligne de programme à l'écran.

END - Token : 93 -> Signale et termine la fin d'un programme.

EOF - Token : FF 0C -> Renvoi la valeur -1 si le pointeur de fichier est à la fin du fichier.

ERA - Token : 94 -> Efface un ou plusieurs fichiers.

ERASE - Token : 95 -> Efface les tableaux spécifiés.

ERL - Token : DC -> Donne le numéro de la ligne où une erreur s'est produite.

ERR - Token : DD -> Donne le numéro de l'erreur qui s'est produite.

ERROR - Token : 96 -> Permet de générer une erreur dont le numéro est spécifié.

EXP - Token : FF 0D -> Fournit la valeur exponentielle de l'expression numérique.

FIELD - Token : 97 —> Crée et associe des variables à chaque zone pour le fichier concerné.

FILES - Token : 98 -> Permet d'afficher le catalogue disquettte complet ou partiel.

FIND$ - Token : 73 -> Permet de rechercher un fichier.

FIX - Token : FF 0E -> Elimine la partie décimale de l'expression entière.

FOR.. TO.. [STEP..] - Tokens : 99.. E3.. [E0.] -> Boucle de type POUR... JUSQU'A.

FRE - Token : FF 0F -> Permet de connaître la mémoire disponible.

GET - Token : 9A -> Lit un enregistrement dans le tampon d'enregistrement.

GOSUB - Token 9B -> Appelle un sous-programme.

GOTO - Token : 9C -> Renvoi à la ligne spécifiée.

HEX$ - Token : FF 74 -> Fournit une chaîne hexadécimale représentant l'expression numérique.

HIMEN - Token : E7 -> Fournit l'octet le plus élevé de la mémoire utilisée par Basic.

IF.. THEN.. [GOTO].. [ELSE] - Token : 9D... E2... [9C]... [92] -> Permet d'exécuter des traitements conditionnels.

INKEY$ - Token : FF 75 -> Permet la lecture d'un caractère du clavier.

INP - Token : FF 10 -> Lit une valeur sur un port d'entrée/sortie.

INPUT - Token : 9E -> Permet de lire une chaîne ou une valeur à partir du clavier.

INPUT# - Token : 9F -> Permet de lire des données dans un fichier séquenciel.

INPUT$ - Token : FF 76 —> Permet de lire un nombre fixé de caractère à partir du clavier.

INSTR - Token : FF 77 -> Permet de rechercher une chaîne de caractères dans une autre chaîne.

INT - Token : FF 11 -> Arrondi à sa partie entière un nombre.

KILL - Token : A0 -> Efface un fichier.

LEFT$ - Token : FF 78 -> Extrait un nombre déterminé de caractères de la partie gauche d'une chaîne de caractères.

LEN - Token : FF 12 -> Détermine la longueur d'une chaîne de caractères.

LET-Token : A1 -> Instruction d'affectation.

LINE INPUT-Token : A2 9E Lire une ligne de texte au clavier.

LINE INPUT# - Token : A2 9F -> Lire une ligne complète dans un fichier.

LIST-Token : A3 -> Liste le programme à l'écran.

LLIST-Token : A4 -> Liste le programme sur imprimante.

LOAD - Token : A5 -> Lit un programme sur disque.

LOC - Token : FF 13 -> Donne le numéro d'enregistrement actif d'un fichier.

LOF - Token : FF 14 -> Fournit la longueur d'un fichier.

LOG - Token : FF 15 -> Fournit le logarithme népérien d'un nombre.

LOGIO - Token : FF 16 -> Fournit le logarithme décimal d'un nombre.

LOWER$ - Token : FF 17 -> Convertit une chaîne en minuscule.

LPOS - Token : FF 18 -> Fournit la position de la tête de l'imprimante.

LPRINT-Token : A6 -> Affiche des données ou caractères sur l'imprimante.

LSET-Token : A7 —> Justifie à gauche une chaîne de caractères en la remplaçant par une autre.

MAX - Token : FF 79 -> Détermine le maximum de plusieurs valeurs.

MEMORY - Token : CF -> Permet de modifier l'espace mémoire utilisé par Basic.

MERGE - Token : A8 -> Fusionne un programme sur disque avec le programme actuel.

MID$ - Token : A9 -> Permet d'obtenir ou de remplacer la partie d'une chaîne de caractères.

MIN - Token : FF 7A -> Détermine le minimum de plusieurs valeurs.

MKD$ - Token FF 19 -> Crée une chaîne de caractères en double longueur.

MKI$ - Token : FF 1A -> Crée une chaîne de caractères à partir d'un entier.

MKIK$ - Token FF 2C ->Crée une chaîne de caractères à partir d'un entier, pour utilisation en tant que clé.

MKS$-Token : FF 1B -> Crée une chaîne à partir d'un nombre simple précision.

MKUK$ - Token : FF 2D -> Crée une chaîne à partir d'un nombre entier non signé, pour utilisation en tant que clé.

NAME... AS - Token : AA... DA -> Change le nom d'un fichier.

NEW - Token : AC -> Vide le contenu de la mémoire.

OCT$ - Token : FF 7B -> Convertit un nombre en une chaîne codée en octale.

ON... GOSUB/GOTO - Token : AD... 9B/9C -> Permet de gérer une structure de cas.

ON ERROR GOTO - Token : AE -> Procédure de traitement d'erreur.

OPEN - Token : AF -> Permet d'ouvrir des fichiers sur disque.

OPTION BASE - Token : B0 -> Spécifie la valeur de départ pour les tableaux.

OPTION FILES - Token : B0 98 -> Permet de changer l'unité ou le numéro d'utilisateur.

OPTION INPUT - Token : B0 9E -> Définit un sous-programme en langage machine pour traiter les entrées au clavier.

OPTION LPRINT - Token : BO A6 -> Définit un sous-programme en langage machine pour traiter les sorties sur imprimante.

OPTION NOTTAB - Token : B0 FD E1 -> Empêche Basic de convertir le caractère TAB en chaînes d'espaces.

OPTION PRINT - Token : B0 B3 -> Définit un sous-programme en langage machine pour traiter les sorties sur écran.

OPTION RUN - Token : B0 C2 -> Empêche les interruptions du programme Basic.

OPTION STOP - Token : B0 C4 -> Réactive la possibilité d'interruption du programme.

OPTION TAB - Token : BO E1 -> Permet la conversion par Basic du caractère TAB par des espaces.

OUT - Token : B1 -> Permet d'envoyer un octet sur un port d'entrée/sortie.

PEEK - Token : FF 1C -> Permet de lire un octet en mémoire machine.

POKE - Token : B2 -> Permet d'écrire un octet en mémoire machine.

POS - Token : FF 1D -> Permet de connaître la position du curseur à l'écran.

PRINT - Token : B3 -> Permet l'affichage de données ou de caractères à l'écran.

PRINT# - Token : B4 -> Permet l'écriture de données ou de caractères dans un fichier.

PUT - Token : B5 -> Permet de mettre des données dans un fichier à accès direct.

RANDOMIZE - Token : B7 -> Permet d'initialiser le générateur de nombres aléatoires.

READ - Token : B8 -> Permet la lecture de données placées en ligne de DATA.

REM - Token : B9 -> Permet d'introduire des commentaires dans un programme.

REN - Token : BA -> Permet de donner un nouveau nom à un fichier.

RENUM - Token : BB Pérmet la renumérotation de tout ou partie d'un programme.

RESET - Token : BC -> Permet de réinitialiser la strucxure des fichiers.

RESTORE - Token : BD -> Permet de positionner le pointeur de DATA sur une ligne spécifique.

RIGHT$ - Token : FF 7C -> Permet la lecture de la partie droite d'une chaîne de caractères.

RND-Token : FF 7D -> Génère un nombre aléatoire.

ROUND - Token : FF 7E -> Arrondit un nombre avec un nombre déterminé de décimales.

RSET-Token : C1 -> Remplace le contenu d'une chaîne par une autre, justifiée à droite.

RUN - Token : C2 -> Charge et/ou lance l'exécution d'un programme.

SAVE - Token : C3 -> Inscrit le programme en mémoire sur disque.

SGN - Token : FF 1E —> Permet de connaître le signe d'une valeur.

SIN - Token FF 1F -> Fournit la valeur du sinus d'une expression numérique exprimée en radians.

SPACE$ - Token : FF 20 -> Crée une chaîne d'espace d'une longueur déteminée.

SPC-Token : DF -> Affiche un nombre déterminé d'espaces.

SQR - Token : FF 21 -> Calcul la racine carrée d'une expression numérique.

STOP - Token : C4 -> Permet d'interrompre l'exécution d'un programme.

STR$ - Token : FF 22 -> Convertit une expression numérique en une chaîne de caractères.

STRING$ - Token : FF 7F -> Permet de créer une chaîne de caractères composé de plusieurs fois le même caractère.

STRIP$ - Token : FF 28 Positionne à 0 le bit numéro 7 de chaque caractère d'une chaîne de caractères.

SWAP - Token : C5 -> Echange le contenu de deux variables.

SYSTEM - Token : C6 -> Renvoi au système d'exploitation.

TAB - Token : E1 -> Positionne à la tabulation spécifiée.

TAN - Token : FF 23 -> Calcul la tangente d'une expression numérique exprimée en radians.

TROFF - Token : C7 -> Désactive la fonction trace.

TRON - Token : C8 -> Active la fonction trace.

TYPE - Token : D3 -> Affiche le contenu d'un fichier à l'écran.

UPPER$ - Token : FF 25 -> Convertit en majuscule tous les caractères d'une chaîne.

UNT - Token : FF 24 -> Convertit une valeur en un entier non signé.

USR - Token : E5 -> Permet l'appel d'un sous-programme en langage machine par un nom de fonction.

VAL-Token : FF 26 -> Détermine la valeur numérique d'une chaîne, si elle contient une expression numérique.

VARPTR - Token : E6 -> Permet de connaître l'adresse d'une variable.

VERSION - Token : FF 29 -> Permet de connaître la version de Basic utilisé.

WAIT - Token : C9 -> Attend la présence d'une valeur sur un numéro de port spécifié.

WHILE... WEND - Token : CB... CA -> Exécute une boucle de type TANTQUE... FINTANTQUE.

WIDTH - Token : CC -> Spécifie la largeur de l'écran.

WIDTH LPRINT - Token : CC A6 -> Spécifie le nombre de caractères par ligne sur l'imprimante.

WRITE - Token : CD -> Permet d'afficher des caractères sur l'écran.

WRITE#-Token : CE -> Permet d'écrire des expressions numériques ou des chaînes de caractères sur un fichier.

ZONE - Token : D5 -> Permet de modifier la zone d'impression utilisée par PRINT, LPRINT et PRINT#.

Les fonctions JETSAM

ADDKEY - Token : FF 65 -> Ajoute une clé à un fichier d'index représentatif d'un enregistrement d'un fichier de données.

ADDREC - Token : FF 66 -> Ajoute une clé à un fichier d'index et un nouvel enregistrement au fichier de données concerné.

BUFFERS - Token : D6 —> Permet de connaître la quantité de mémoire utilisée par JETSAM pour la gestion des fichiers.

CONSOLIDATE - Token : FF 63 -> Provoque l'écriture sur la disquette des données d'un fichier en cours de modification.

CREATE - Token : D1 -> Crée et ouvre un fichier indexé, ainsi que son fichier de données associé.

DELKEY - Token : FF 67 -> Supprime une clé du fichier d'index, ainsi que son enregistrement associé, si ce dernier existe.

FETCHKEY$ - Token : FF 68 -> Permet de connaître la valeur de la clé active.

FETCHRANK - Token : FF 69 -> Permet de connaître le rang de la clé en position active.

FETCHREC - Token : FF 6A -> Cherche le numéro d'enregistrement correspondant à la clé active.

LOCK - Token : FF 6B -> Permet la modification ou suppression d'un verrou d'enregistrement.

OPTION FIELD - Token : B0 97 -> Intègre les octets d'un enregistrement indexé dans un enregistrement utilisateur.

SEEKKEY - Token : FF 6C -> Recherche une clé déterminée et la rend active.

SEEKNEXT-Token : FF 6D -> Recherche la clé suivant celle qui est active.

SEEKPREV-Token : FF 6E -> Recherche la clé précédent celle active.

SEEKRANK-Token : FF 6F -> Recherche la première clé du rang spécifié suivant la position en cours.

SEEKREC - Token : FF 70 -> Initialisation de la position en cours à partir de valeurs enregistrées.

SEEKSET - Token : FF 71 -> Recherche la clé suivante, différente de celle en cours.

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

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