Les
couleurs affectées aux
crayons du cpc 6128 par défaut 256 couleurs avec l'émulateur CpcAlive Les messages d'erreur du basic Cpc |
La mémoire Dernières revues (version Dosbox) V1.17 - 07/01/2024 - nouveau mode écran 1024*768*256couleurs(MODE 3) V1.16 - 16/12/2014 - correction assembleur Z80 V1.15 - 30/11/2014 - corrections V1.14 - 20/11/2014 - affiche les fichiers sources dans le déboggeur Z80 V1.13 - 20/9/2014 - amélioration de la commande basic TRON (débogueur BASIC) + corrections Le Cpc 6128 possède une mémoire RAM de 128Ko divisés en huit blocs de 16 Ko chacun, numérotés de 0 à 7. Seul quatre blocs peuvent êtres connectés simultanément. valeur port &7F position blocs &C0 0,1,2,3 configuration standard &C1 0,1,2,7 &C2 4,5,6,7 &C3 0,3,2,7 &C4 0,4,2,3 &C5 0,5,2,3 &C6 0,6,2,3 &C7 0,7,2,3 Le système du Cpc n'exploite que le premier type de configuration. Dans cette configuration le bloc 0 occupe l'espace 0 à 03FFFh de la mémoire, le bloc 1 l'espace 04000h à 07FFFh, le bloc 2 l'espace 08000h à 0BFFFh, le bloc 3 l'espace 0C000h à 0FFFFh. L'écran exploite le bloc 3. La partie supérieure du bloc 2 contient les variables système. La partie inférieure du bloc 0 est utilisée par le système. Les programmes Basic sont chargés par le système à partir de l'adresse 0170h. Les données binaires peuvent êtres chargées à partir de l'adresse définie à l'aide de la commande Basic "MEMORY". S'il s'agit de programmes exécutables par le processeur, ils pourront être appelés grâce à l'instruction "CALL". Le Cpc 6128 est pourvu en standard de 48Ko (3 blocs de 16Ko) de mémoires ROM. Un de ces blocs contient le système d'exploitation qui se connecte dans la zone 0 à 03FFFh (rom inférieure). Les deux autres blocs (BASIC et système disque) se connectent dans la zone 0C000h à 0FFFFh (roms supérieures). Le système peut exploiter dans cette dernière zone 252 blocs de 16Ko. Une particularité intéressante de ces roms est qu'elles peuvent recevoir des instructions BASIC programmables (Resident System eXtension). Exemple de création d'une ROM contenant des instructions BASIC programmables (Resident System eXtension) The system memory map The system vectors Appel d'un programme machine à partir de l'instruction Basic "CALL" CALL <adresse>[,<liste de:<paramètre>] COMMANDE: Appel d'un programme écrit en langage machine Z80. Afin de ne pas être écrasé par le basic, ce programme doit être placé au dessus de l'adresse définie à l'aide de la commande Basic "MEMORY". Les données fournies par la <liste de:<paramètre> doivent êtres des données entières (voir DEFINT). Le programme machine reçoit les données du BASIC de la manière suivante: en entrée, le registre A du Z80 contient le nombre de paramètres fournis par la commande. Ce nombre ne peut pas dépasser 32. Le registre DE contient le dernier paramètre et le registre IX pointe sur une zone mémoire où sont disposés tous les paramètres. Chaque paramètre est constitué de 2 octets qui sont présentés sous la forme habituelle en Z80, poid faible d'abord, poid fort ensuite. Un paramètre peut être: - une constante ou variable entière (ex: 12, &30, x, y,...). Dans ce cas la donnée reçue sera l'adresse mémoire où se situe la valeur de la constante ou de la variable. - un pointeur de variable entière (ex: @x, @y...). Dans ce cas la donnée reçue sera l'adresse mémoire où se situe l'adresse de la valeur de la variable. - une constante, une variable alphanumérique ou un pointeur de variable alphanumérique (ex: "TOTO", a$, b$, @a$, @b$,...). Dans ce cas, la donnée reçue pointe sur l'adresse mémoire où se situe les données de la chaîne de caractères. Le premier octet du bloc de données contient la longueur de la chaîne, vient ensuite l'adresse de la chaîne en mémoire. Exemple: A=1 B$="TOTO" CALL adresse,&1234,A,@A,B$,@B$ Il y a 5 paramètres: le registre A du processeur contient 5 IX+0: pointe sur l'octet de poids faible de l'adresse du pointeur de B$ IX+1: pointe sur l'octet de poids fort de l'adresse du pointeur de B$ IX+2: pointe comme IX+0 IX+3: pointe comme IX+1 IX+4: pointe sur l'octet de poids faible de l'adresse de la valeur de A IX+5: pointe sur l'octet de poids fort de l'adresse de la valeur de A IX+6: pointe sur 1 (poids faible de 1) IX+7: pointe sur 0 (poids fort de 1) IX+8: pointe sur &34 (poids faible de &1234) IX+9: pointe sur &12 (poids fort de &1234) Les messages d'erreur du Basic Cpc 1 Unexpected NEXT (NEXT inattendu) Une commande NEXT à été rencontrée sans que la commande FOR n'ait lancé de boucle ou bien la variable suivant NEXT ne correspond pas à celle de la boucle FOR. 2 Syntax error (erreur de syntaxe) le BASIC ne comprend pas la ligne â cause d'une construction non permise (très souvent une faute de frappe). 3 Unexpected RETURN (RETURN inattendu) Une commande RETURN survient sans qu'il y ait de sous-proramme en cours. 4 DATA exhausted (il n'y a plus de données DATA ) Une commande READ a fini de lire une ligne de DATA épuisée. 5 Improper argument (argument incorrect ) Erreur d'ordre général. L'argument d'une fonction ou le paramètre d'une commande n'est pas acceptable. 6 Overflow (dépassement arithmétique) Se produit lorsqu'une opération arithmétique dépasse les limites.Le chiffre en virgule flottante est devenu trop grand (supirieur à 1.7E^38) ou a fait l'objet d'une tentative de conversion en un nombre entier trop grand. 7 Memory full (mémoire saturée) Le programme ou ses variables sont trop grands pour la ménoire ou la structure des boucles est trop compliquée (trop de GOSUB, WHILE et FOR imbriqués). A chaque fichier ouvert est affeccté un tampon de mémoire ce qui peut être une cause de limitation pour la commande MEMORY. 8 Line does not exist (ligne inexistante) Le numéro de ligne référencé n'existe pas en mémoire. 9 Subscript out of range (indice hors limite) Un des indices de votre tableau est trop grand ou trop petit. 10 Array already dimensionned (tableau déjà dimensionné) Un tableau d'une instruction DIM a déjà été défini. 11 Division by zero (division par zéro) L'ordinateur n'aime pas diviser par zéro, que ce soit réel, entier etc... 12 Invalid direct command (commande directe non valable) La commande n'est pas acceptable en mode direct. 13 Type mismatch (types de variable ne correspond pas) On a donné une valeur numérique pour une chaîne alphanumérique ou vice-versa ou un nombre non valable a été découvert par une commande READ ou INPUT. 14 String space full (l'espace réservé aux chaînes sature) Il y a tellement de chaînes qu'il n'y a plus de place, même après une remise en ordre. 15 String too long (chaîne trop longue) Une chaîne a plus de 255 caractères, ce qui peut arriver lors d'une concaténation de chaînes. 16 String expression too complex (chaîne trop compliquée) Des expressions de chaînes peuvent produire des valeurs intermédiaires qui, si elles sont trop nombreuses, conduisent le BASIC à donner ce message. 17 Cannot continue (on ne peut pas continuer) Le programme ne peut pas poursuivre son exécution avec CONT, qui sert après une commande STOP, [ESC][ESC] ou une erreur. Notez que si le programme a été modifié entre-temps. il est impossible de le relancer par cette commande. 18 Unknown user function (fonction inconnue au bataillon) On a oublié de définir la fonction FN avec la commande DEF FN auparavant. 19 RESUME missing (commande RESUME absente) On a trouvé la fin de programme alors que celui-ci procédait à un traiteront d'erreur (à la suite d'une déclaration ON ERROR GOTO). 20 Unexpected RESUME (RESUME inattendu) On tombe sur une commande RESUME sans être dans un sous-programme de type ON ERROR GOTO. 21 Direct command found (commande directe tombée du ciel !) En chargeant un programme, une ligne sans numéro s'est présentée. 22 Operand missing (opérande absent) Le BASIC vient de tomber sur une expression incomplète. 23 line too long (ligne trop longue) Le BASIC n'accepte pas les lignes de plus de 255 caractères. 24 EOF met (rencontre d'une fin de fichier) EOF = End Of File = fin de fichier, le programme a effectué une tentative de lecture après une fin de fichier. 25 File type error (erreur dans le type de fichier) Le fichier n'est pas de type requis. OPENIN peut seulement ouvrir des fichiers de texte ASCII. LOAD, RUN, etc.., ne fonctionnent qu'avec des fichiers produits par SAVE. 26 NEXT missing (NEXT manquant) On ne peut pas trouver le NEXT qui corresponde à une commande FOR. 27 File already open (fichier déja ouvert) Une commande OPENIN ou OPENOUT est exécutée avant que le fichier déjà ouvert n'ait été fermé. 28 Unknown command (commande inconnue) Le BASIC ne trouve pas de références à cette commande externe. 29 WEND missing (WEND manquant) La boucle commencée par WHILE n'est pas terminé par WEND. 30 Unexpected WEND (WEND inattendu) Un WEND est découvert en dehors d'une boucle WHILE ou un WEND ne correspond pas au WHILE de la boucle. 31 File not open (fichier non ouvert) (Voir «Erreurs de disquette») 32 Broken in (interrompu) (Voir «Erreurs de disquette») |
|||||||||||||||||||||||||||||||||||||
La gestion des disquettes AMSDOS est une extension du BASIC AMSTRAD, ajoutant des commandes externes supplémentaires et redéfinissant certaines instructions existantes. Les nouvelles commandes externes sont identifiées par le symbole | (barre verticale). Noms et genres des fichiers AMSDOS Le nom est constitué de deux parties séparées par un point, la première partie de 8 lettres maximum et la seconde, de 3. La deuxième partie représente l'indicateur de type. Les noms de fichiers et leurs indicateurs peuvent être composés d'un mélange de lettres et de nombres mais ne peuvent contenir ni espaces, ni signes de ponctuation. L'indicateur de type, simple convention indiquant le type du fichier, ne joue aucun rôle précis, le système distinguant les fichiers entre eux grâce à une entête particulière. Dans le cas ou aucune extension n'est spécifiée lors d'une sauvegarde, AMSDOS détermine quelle extension attribuer de la manière suivante: .<espace> Type non spécifié. Peut-être un fichier de données créé par l'instruction OPENOUT"<nomfich>" (nom de fichier) ou un programme BASIC sauvegardé en utilisant une commande AMSDOS du style SAVE"<nomfich>",A .BAS Programme BASIC sauvegardé à l'aide de commandes AMSDOS du style SAVE"<nomfich>" ou SAVE"<nomfich>",P .BIN Programme ou zone de mémoire sauvegardée par une commande AMSDOS du style SAVE"<nomfich>",B (<paramètres binaires>). .BAK Ancienne version d'un fichier sauvegardé lors de la configuration d'une nouvelle version par AMSDOS. L'utilisateur peut ainsi récupérer l'ancienne version s'il en à besoin. Si les indicateurs (par défaut) ne vous satisfont pas, vous avez la possibilité d'en spécifier un à votre convenance. Lors d'une demande de chargement avec un nom de fichier dépourvu d'indicateur de type, la commande LOAD AMSDOS, indépendemment du contenu de l'en-tête, cherche d'abord ce fichier sous le type: .<espace> ... puis, si elle ne trouve rien: .BAS ... et enfin: .BIN Le catalogue disquette comptabilise par unité de 1Kilo-octet et peut contenir jusqu'à 64 noms de fichiers. Sommaire des principales commandes externes d'AMSDOS |A Dirige les entrées/sorties vers l'unité A. Equivalent à |DRIVE avec A pour paramètre. |B Dirige les entrées/sorties vers l'unité B. Equivalent à |DRIVE avec B pour paramètre. |CPM Charge et initialise le système d'exploitation contenu dans la disquette système. |DIR [<chaîne alphanumérique>] ex: |DIR,"*.BAS" Affiche le catalogue de la disquette (façon C/PM) et l'espace disponible. |DRIVE,<chaîne alphanumérique> ex: |DRIVE,"A" Dirige les entrées/sorties vers une des unités. |ERA,<chaîne alphanumérique> ex: |ERA,"*.BAS" Efface tous les fichiers qui correspondent à ce nom de fichier et ne sont pas en Ecriture seulement. Les jokers sont permis. |REN,<chaîne alphanumérique>,<chaîne alphanumérique> ex: |REN,"NOUVEAU.BAS","ANCIEN.BAS" Renome un fichier. Les jokers ne sont pas autorisés. Erreurs de disquette Plusieurs erreurs peuvent se produire lors du traitement des opérations d'archivage. Bien que le BASIC les regroupe sous le numéro d'ERReur 32, vous pouvez obtenir de plus amples informations en appelant la fonction DERR. Voici la signification des valeurs qu'elle renvoie:
Si AMSDOS a déjà rapporté une erreur, le bit 7 a pris la valeur 1, décalant celle de DERR de 128. Les autres valeurs rapportées par DERR proviennent du contrôleur de disquette, le bit 6 étant toujours sur 1. Le bit 7 indique si AMSDOS a rapporté l'erreur ou non (voir ci-dessus). Voici la signification de chacun des bits: Bit Signification 0 Adresse manquante 1 Ecriture impossible. Disquette protégée. 2 Pas de donnée. Secteur introuvable. 3 Unité non prête. Pas de disquette dans l'unité. 4 Surcharge 5 Erreur de donnée. Erreur CRC (cyclic redundancy check) 6 Toujours à 1 pour indiquer une erreur venant du contrôleur de disquette. 7 Sur 1 si AMSDOS a déjà rapporté l'erreur. Le Clavier La palette du cpc 6128 par défaut No Ink Couleur 00 Noir 01 Bleu 02 Bleu Vif 03 Rouge 04 Magenta 05 Mauve 06 Rouge Vif 07 Pourpre 08 Magenta Vif 09 Vert 10 Turquoise 11 Bleu Ciel 12 Jaune 13 Blanc 14 Bleu Pastel 15 Orange 16 Rose 17 Magenta Pastel 18 Vert Vif 19 Vert marin 20 Turquoise Vif 21 Vert citron 22 Vert pastel 23 Turquoise Pastel 24 Jaune Vif 25 Jaune pastel 26 Blanc Brillant Les couleurs affectées aux crayons du cpc 6128 par défaut No No Pen Ink couleur Paper 1 Bleu 0 1 Bleu 1 24 Jaune Vif 2 20 Turquoise Vif 3 6 Rouge Vif 4 26 Blanc Brillant 5 0 Noir 6 2 Bleu Vif 7 8 Magenta Vif 8 10 Turquoise 9 12 Jaune 10 14 Bleu Pastel 11 16 Rose 12 18 Vert Vif 13 22 Vert Citron 14 1 Bleu 1ere couleur 24 Jaune Vif 2eme couleur 15 11 Bleu Ciel 1ere couleur 16 Rose 2eme couleur 256 couleurs avec l'émulateur CpcAlive |