English French
German Spanish
CPC Basic

Vue d'ensemble

Description de l'environnement

Les options de compilation

Types de sortie

Utilisation de la fenêtre d'entrée

Différences fondamentales avec Locomotive Basic

Bibliothèque pour utiliser les valeurs réelles

Exigences et l'installation de CPC Basic

Description des fichiers et des répertories dans l'application

Le fichier de configuration

Ligne de commande

Liens connexes

Notes techniques

Remerciements

Histoire

Vue d'ensemble

CPC Basic est un environnement intégré pour le développement de programmes pour Amstrad CPC 464, 664 et 6128. Fonctionne sur Windows et autres systèmes d'exploitation qui permettent la compatibilité avec les applications Windows, comme Linux avec Mono ou Mac OS avec Wine.

La fonction de CPC Basic est de permettre l'entrée et l'édition d'un programme et la compilation pour générer le code machine nécessaire et l'exécuter sur un ordinateur ou un émulateur Amstrad CPC.

Les programmes sont écrits en Basic basée sur Locomotive Basic avec un certain nombre de différences nécessaires, car il est un compilateur et pour optimiser la vitesse du code produit.

CPC Basic est gratuite d'utilisation et librement distribuable, merci pour la mention de son auteur.

Description de l'environnement

L'écran comprend trois zones:

  • Le haut vous permet de définir les options de compilation pour générer du code du programme est entré.
  • La partie principale est la fenêtre de sortie, où on montre les phrases et les lignes introduites, les résultats qu'ils produisent, les messages d'erreur, etc. Vous pouvez faire défiler le contenu de cette fenêtre pour afficher son contenu avant en cliquant dessus et en utilisant les touches fléchées ou page arrière et avance.
  • Le fond est la fenêtre d'entrée, où vous tapez les commandes d'édition et des lignes de programme.

La fenêtre de l'application CPC Basic est redimensionnable et la division entre les fenètres d'entrée et de sortie peut être déplacé à s'adapter au goût de l'utilisateur.

Pour sortir de l'environnement est nécessaire de fermer la fenêtre du programme en cliquant sur la croix en haut à droite.

Les options de compilation

Au haut de la fenêtre CPC Basic est:

  • Liste CPC type: Amstrad CPC modèle (464, 664 ou 6128) pour lequel générer le code. Selon le modèle choisi il ya quelques commandes et fonctions qui ne sont pas pris en charge.
  • Liste Output: type de sortie généré par le processus de compilation.
  • Valeur Real numbers: nombre de valeurs réelles à être utilisés par le programme.
  • Bouton Programs: ouvre le navigateur de fichiers pour le répertoire de stockage par défaut de programmes Basic.
  • Bouton Output: ouvre le navigateur de fichiers pour le répertoire de stockage de fichiers résultant de la compilation.

Types de sortie

  • Binary file: produit un fichier du code machine pour le programme Basic.
  • Assembler code: produit un fichier avec le code assembleur Z80 pour le programme Basic. Ce fichier peut être modifier et assembler pour produire le code binaire nécessaire pour fonctionner sur un Amstrad CPC ou un émulateur.
  • ccz80 code: génère un fichier avec le code ccz80 pour le programme Basic. Ce fichier peut être modifié et compilé avec ccz80 pour produire le code binaire nécessaire pour fonctionner sur un Amstrad CPC ou un émulateur.
  • CDT file: produit un fichier image CDT de cassette qui comprend un fichier OUTPUT.BIN avec le code machine pour le programme Basic. Le fichier CDT peut être utilisé dans un émulateur et exécutez le fichier inclus avec RUN "".
  • DSK file: produit un fichier image DSK de disque qui comprend un fichier OUTPUT.BIN avec le code machine pour le programme Basic. Le fichier DSK peut être utilisé dans un émulateur et exécutez le fichier inclus avec RUN "".
  • Fichier Snap: crée un fichier image de la mémoire qui comprend le code machine de calage pour le programme Basic. Ce fichier SNA peut être utilisé dans un émulateur et exécutez le programme en appuyant sur la touche Enter après le chargement du fichier snap.
  • Run in Emulator: mêmes fonctionnalités que la sortie Snap file, et gère également de l'émulateur avec l'image snap déjà chargé. L'image snap n'est pas stocké sur le disque. Pour continuer à utiliser CPC Basic quitter l'émulateur.

Les fichiers générés sont dans le sous-répertoire Output dans le répertoire où vous avez installé CPC Basic. Quand un fichier est généré après la compilation, les fichiers créés dans les compilations précédentes sont supprimés.

Utilisation de la fenêtre d'entrée

Dans cette fenêtre, vous pouvez entrer les commandes d'édition et les lignes du programme et de faire les modifications.

Vous pouvez entrer une seule ligne ou plusieurs séparés par Ctrl + Enter. En appuyant sur Enter va interpréter toutes les lignes existantes dans la fenêtre d'entrée. Appuyer sur la touche Escape annule la totalité du contenu de la fenêtre d'entrée. Vous pouvez également coller dans cette fenêtre le contenu du presse qui a été copié précédemment, avec l'option correspondante dans le menu contextuel qui s'affiche en appuyant sur le bouton droit de la souris ou la combinaison de touches Ctrl + V ou Ctrl + Insert, et si en appuyant sur Enter sera interprété comme si elle avait été tapé manuellement le contenu collé. Cette fonctionnalité peut être utile par exemple pour insérer des lignes ou morceaux des lignes qui existent dans la fenêtre de sortie ou de listes de programmes à part entière.

Chaque ligne est entré peut contenir un ou plusieurs commandes d'édition, séparés par une virgule ou une ligne de programme, en commençant par un numéro de ligne.

Les commandes d'édition pris en charge sont:

  • AUTO: même syntaxe et la fonctionnalité dans Locomotive Basic.
  • CAT: même syntaxe et la fonctionnalité dans Locomotive Basic.
  • CLS: même syntaxe et la fonctionnalité dans Locomotive Basic, mais pas la spécification d'un canal.
  • DELETE: même syntaxe et la fonctionnalité dans Locomotive Basic.
  • LIST: même syntaxe et la fonctionnalité dans Locomotive Basic, mais pas la spécification d'un canal.
  • EDIT: même syntaxe et la fonctionnalité dans Locomotive Basic.
  • LOAD: même fonctionnalité dans Locomotive Basic, mais ne supporte que le chargement de fichiers Basic, la syntaxe LOAD "filename". Vous pouvez spécifier un chemin d'accès au nom de fichier, s'il n'est pas spécifié, le fichier est chargé à partir de sous-répertoire Programs dans le répertoire d'installation de la CPC Basic. S'il est spécifié comme nom de fichier une chaîne vide ouvrira la boîte de dialogue de fichier pour le sélectionner.
  • MERGE: même syntaxe et la fonctionnalité dans Locomotive Basic. Vous pouvez spécifier un chemin d'accès au nom de fichier, s'il n'est pas spécifié, le fichier est chargé à partir de sous-répertoire Programs dans le répertoire d'installation de CPC Basic. S'il est spécifié comme nom de fichier une chaîne vide ouvrira la boîte de dialogue de fichier pour le sélectionner.
  • MODE: même syntaxe et la fonctionnalité dans Locomotive Basic.
  • NEW: même syntaxe et la fonctionnalité dans Locomotive Basic.
  • RENUM: même syntaxe et la fonctionnalité dans Locomotive Basic.
  • RUN: compiler le programme actuellement en mémoire et produit le fichier pour le type de sortie est sélectionné. Le fichier résultant est stocké dans le sous-répertoire Output dans le répertoire d'installation de la CPC Basic.
  • SAVE: la fonctionnalité de Locomotive Basic, mais ne supporte que l'enregistrement de fichiers Basic, avec la syntaxe SAVE "nom de fichier". Vous pouvez spécifier un chemin d'accès au nom de fichier, s'il n'est pas spécifié le fichier est écrit dans le sous-répertoire Programs dans le répertoire d'installation de la CPC Basic. S'il est spécifié comme nom de fichier une chaîne vide ouvrira la boîte de dialogue de fichier pour sélectionner le répertoire et le nom.

Lignes introduites dans la fenêtre d'entrée est ajouté au programme. Si vous entrez une ligne avec un certain nombre qui existait va remplacer qui a été stockée. Si vous entrez seulement un numéro de ligne elle est retiré du programme si elle existe.

Différences fondamentales avec Locomotive Basic

Il ya un grand soutien dans la syntaxe des commandes, mais il ya quelques différences dues à que CPC Basic est un compilateur et non un interpréteur et aussi parce que on a cherché une génération de code le plus rapide possible. Les principales différences, et d'autres mineurs peuvent être trouvés, sont les suivants:

  • Dans CPC Basic erreur non vérifiée au cours de l'exécution du programme. Si une erreur se produit, le programme fonctionne toujours, mais peut-être incorrecte.
  • Toute expression numérique qui produit une valeur négative sera transformée en valeur positive équivalente en complément à deux, ce qui équivaut à l'ajout de 256 s'il a été attribué à une variable byte et 65536 s'il a été attribué à une variable word, la valeur négative produite. Il est conseillé d'éviter une expression produit une valeur négative à moins qu'il ne se trouve que la valeur équivalente en complément à deux est valable pour l'opération devant être utilisé.
  • Une expression qui produit une valeur supérieure à la limite de la variable qui stocke va changer à cette valeur soustraite 256 s'il a été attribué à une variable byte et 65536 s'il a été attribué à un variable word.
  • Aussi garder à l'esprit ces concepts dans la boucle vers le bas pour se terminer en 0 (p.ex. FOR n%=10 TO 0 STEP -1, où n% ne peut jamais prendre la valeur -1, indiquant la fin de la boucle, puisque, après traiter la valeur 0, diminuerait 1 à 255) ou vers le haut pour mettre fin à la limite supérieure d'une variable (par exemple FOR n!=60000 TO 65535, où n! ne peut jamais prendre la valeur 65536 indiquerait la fin de la boucle parce après avoir essayé le value 65535, ce qui augmente à 1 serait à 0), ou les augmentations ou diminutions de variables pour produire des résultats en dessous de 0 (par exemple, a%=10:a%=a%-11:IF a%=-1 THEN PRINT"Negatif" ne donne pas le résultat escompté, puisque 10 - 11 produit -1, ce qui devient 255, de sorte que la condition n'est pas vraie) ou au-dessus de la limite supérieure de la variable (par exemple a!=60000:a!=a!+10000:IF a!=70000 THEN PRINT "Correct", qui produit 60000 + 10000 = 70000, qui devient de 70000 - 65536 = 4464).
  • Comme mentionné ci-dessus, le suffixe % est utilisé pour spécifier le type byte, et le suffixe ! fonction pour spécifier le type word à un identifiant de variable, fonction définie par l'utilisateur, argument de la fonction, et ainsi de suite.
  • Le type par défaut pour les variables et les identifiants á CPC Basic est word sin'est pas utilisé DEFSTR ou DEFBYTE pour le modifier, tandis que dans la Locomotive Basic le type par défaut est réel.
  • Dans CPC Basic sont DEFBYTE et DEFWORD pour le remplacement de DEFINT et DEFREAL de Locomotive Basic, avec la même syntaxe et la fonctionnalité pour les identifiants de type byte et word respectivement.
  • En grande partie CPC Basic parce produit du code machine plutôt que interprété, car il ne vérifie pas les erreurs qui peuvent survenir et parce que les types de données utilisées varient par rapport à Locomotive Basic ne prend pas en charge les commandes suivantes dans les lignes programme: AUTO, CHAIN, CHAIN MERGE, CLEAR, CONT, DEFINT, DEFREAL, DEG, DELETE, EDIT, ERASE, ERROR, LIST, MEMORY, MERGE, NEW, ON BREAK CONT, ON BREAK GOSUB, ON BREAK STOP, ON ERROR GOTO, RAD, RENUM, RESUME, RESUME NEXT, RUN, WIDTH. Le compilateur reconnaît ces mots-clés, mais échoue lorsqu'elle est utilisée dans un programme.
  • Pour les mêmes raisons énoncées dans le point précédent, CPC Basic ne prend pas en charge les fonctions suivantes: ATN, CINT, COS, CREAL, DERR, ERL, ERR, EXP, FIX, FRE, INT, LOG, LOG10, PI, ROUND, SIN, TAN, UNT. Le compilateur reconnaît ces mots-clés, mais échoue lorsqu'elle est utilisée dans une expression.
  • Déclarations DATA, DEF FN, DEFBYTE, DEFSTR, DEFWORD, DIM, SYMBOL AFTER, TROFF, TRON actuent n'importe où dans le programme lorsqu'il est utilisé, indépendamment du fait du déroulement du programme passe par eux ou de ne pas effectuer cette action ou la définition concerné. Par exemple, IF a=0 THEN DEF FNf(x,y)=x+y définit la fonction f quelle que soit la valeur de la variable a; a=0:WHILE a>0:TRON:WEND active surveillance du programme même si le débit ne relève pas de la boucle; a=1:IF a=0 THEN END:DIM n$(20) indique le tableau même n$ si le programme se termine par la déclaration précédente.
  • Les variables de chaîne sont de 255 caractères. Si votre contenu va être plus courte et que vous voulez utiliser moins d'espace mémoire peut être utilisée pour spécifier l'instruction DIM, la syntaxe DIM variable*longueur. Par exemple, pour définir la longueur de la variable a$ a 10 caractères serait indiquée par DIM a$*10. La même chose peut être appliquée aux tableaus de chaîne où chaque élément par défaut a 255 caractères, vous pouvez utiliser l'instruction DIM avec la syntaxe DIM tableau(indice)*longueur. Par exemple, pour définir la longueur de tous les éléments d'un tableau de 16 éléments tableau$ à 25 serait indiquée par DIM tableau$(15)*25.
  • Les indices indiqués dans la déclaration d'un tableau doivent être des expressions constantes, vous ne pouvez pas utiliser des variables dans les. Par exemple DIM a(10*3) est correcte, mais ce n'est pas DIM a(10*n).
  • Non autorisé redefinitions de tableaus, doit être déclaré qu'une seule fois.
  • Les opérateurs / et \ sont équivalentes car les valeurs avec lesquelles elles opèrent sont toujours des nombres entiers.
  • L'expression d'un saut de boucle FOR est toujours interprété positif si elle n'est pas constante, par exemple s=-2:FOR i=10 TO 1 STEP s fonctionne pas comme prévu, mais il sera FOR i=10 TO 1 STEP -2.
  • La fonction RND retourne une valeur de 0 à 65535. Pour obtenir une valeur dans la gamme n à m doit utiliser l'expression RND MOD (m - n + 1) + n. Par exemple, pour obtenir une valeur aléatoire comprise entre 7 et 10 serait RND MOD 4+7, pour une valeur aléatoire entre 1 et 5 serait RND MOD 5+1, pour une valeur aléatoire entre 0 et 20 serait RND MOD 21.
  • La fonction TIME renvoie une valeur dans le gamme 0 à 65535, le retour à zéro quand il atteint la limite d'environ tous les 218 secondes.
  • Expressions avec les conditions des opérateurs relationnels (inférieur, inférieur ou égal, supérieur, supérieur ou égal, égaux et différents) et les fonctions avec résultat booléen (par exemple EOF) retourne une valeur 0 pour indiquer la valeur faux et 65535 pour indiquer le vrai, que peut être interprété comme -1 pour effectuer des opérations arithmétiques autres.
  • Fonctions ABS et SGN interprétent les valeurs supérieures à 32767 comme négatif.
  • La gamme de longueur pour la fonction BIN$ est de 1 à 4.
  • La gamme de longueur pour fonction HEX$ est de 1 à 16.
  • Le modèle peut être spécifiée pour la fonction DEC$ et à la clause PRINT USING a une syntaxe différente de celle utilisée dans le Locomotive Basic. Vous pouvez utiliser les symboles suivants: nombre (#) spécifie un chiffre si est significatif ou un espace si elle n'est pas; astérisque (*) spécifie un chiffre si est significatif ou un astérisque si elle n'est pas, zéro (0) spécifie toujours chiffres, le point (.) et la virgule (,) spécifient respectivement un point ou une virgule si il ya un chiffre significatif devant eux, n'importe quel autre caractère spécifie le même caractère. Par exemple DEC$ (123,"#.##0") produit " 123" (deux espaces au début), DEC$ (123,"00000") produit "00123", DEC$(123, "***** euros") produit "**123 euros".
  • La clause USING ne peut s'appliquer qu'à des valeurs numériques, pas de chaîne, et un modèle ne peut spécifier le format que d'une expression numérique, mais il peut y avoir plusieurs expressions numériques qui s'appliquent, telles que le formatage de Locomotive Basic.
  • Le fonction STR$ ne génère pas l'espace réservé pour le signe, si le nombre est positif.
  • La commande PRINT n'imprime pas un espace à gauche réservé au signe si le nombre est positif ou l'espace ultérieure après une expression numérique.
  • La commande PRINT ne prend pas en compte la largeur de l'écran pour un saut de ligne quand une expression ne peut pas être imprimé dans la ligne actuelle ou doit avancer vers la prochaine zone à l'utilisation d'un séparateur coma ou est avancé a la position spécifiée par le clause de TAB.
  • Dans la commande PRINT le séparateur coma et le clause TAB aucune fonctionnalité pour les chaînes 8 et 9 de l'imprimante et le fichier, respectivement.
  • Un character de code 0 dans une chaîne tronque la chaîne à ce moment-là. Si nécessaire, utilisez le terme CHR$(0).
  • Le commande RANDOMIZE nécessite toujours une expression comme un paramètre, ne peut pas omettre de demander à l'utilisateur.
  • Les fonctions POS et VPOS n'ont pas la fonctionnalité pour les chaînes 8 et 9 de l'imprimante et fichier respectivement.
  • Le code pour les routines appelées par AFTER et EVERY devrait être très bref lors de l'exécution.
  • Ne pas quitter une boucle FOR avec le GOTO si la valeur de fin de la boucle ou saut ont été spécifiés avec une expression non-constante, par exemple FOR i=1 TO 10 STEP n ou FOR j=100 TO f*2. Pour ce faire, vous pouvez définir la valeur de la variable de contrôle de boucle égale à la valeur de fin de la boucle et passer à la déclaration correspondante NEXT.
  • Au sein de chaque ensemble de sentences d'une partie vraie ou fausse d'une instruction IF ne pouvez pas simplement ouvrir un FOR ou WHILE ou tout simplement de fermeture WEND ou NEXT, mais il doit être ouvert et fermé dans le même parti. Par exemple, l'erreur se produit dans IF a=0 THEN WHILE a>10, comme dans la partie vrai de IF s'ouvre la boucle et ne se ferme pas, mais on ferme dans une autre ligne plus tard.
  • Dans les déclarations ON .. GOSUB et ON .. GOTO pas vérifié que la valeur de sélection est supérieure au nombre de lignes spécifiées de programme, seulement que si zéro n'est pas sauter aucune ligne.
  • Les déclarations ENT et ENV ne pas accepter la syntaxe du paramètre = pour spécifier le contrôle par matériel du enveloppe.
  • La syntaxe pour déclarer une tableau et de préciser un élément ne supporte pas l'utilisation de crochets comme dans Locomotive Basic, seulement entre parenthèses.
  • L'opérateur @ appliqué à une variable de chaîne ou d'un élément de tableau de chaîne renvoie l'adresse de son descripteur, comme dans la Locomotive Basic, mais le descripteur est temporaire, de sorte que vous ne voulez pas stocker cette adresse pour une utilisation ultérieure, mais ne l'utiliser que sur la commande actuelle.
  • Lorsque vous utilisez l'opérateur @ pour la variable numérique ou une chaîne n'est pas nécessaire de déclarer à l'avance.

Bibliothèque pour utiliser les valeurs réelles

Pour surmonter l'incapacité à utiliser les valeurs de type réel CPC Basic à la possibilité d'installer un ensemble de commandes RSX qui permettent leur utilisation. Au sommet de la fenêtre de l'application, vous pouvez spécifier le nombre de valeurs réelles à être utilisés par l'application. Si indique zéro les commandes ne sont pas installés, si aucun autre nombre est spécifié ils sont installés, réservant de l'espace mémoire pour un tableau de n variables réelles, identifiées avec des indices allant de 0 à n - 1, pour être couverts par des commandes RSX. Les commandes qui travaillent avec le tableau des variables réelles sont les suivantes:

  • |ABS,i1,i2: équivalent à l'opération tableau(i1)=ABS(tableau(i2)).
  • |ADD,i1,i2,i3: équivalent à l'opération tableau(i1)=tableau(i2)+tableau(i3).
  • |ATN,i1,i2: équivalent à l'opération tableau(i1)=ATN(tableau(i2)).
  • |CINT,@variable, i: correspond à l'opération variable=CINT(tableau(i)), stockage de le valeur d'indice i dans la variable spécifiée, abstraction faite du signe. Utile pour passer la valeur d'un élément dans le tableau de valeurs réelles à une variable du programme CPC Basic.
  • |CMP,@variable,i1,i2: stockée une valeur 1 dans variable si tableau(i1) > tableau(i2), une valeur de 0 si tableau(i1) = tableau(i2), ou une valeur 255, interpetable comme -1, si tableau(i1) < tableau (i2).
  • |COS,i1,i2: équivalent à l'opération(i1)=COS(tableau(i2)).
  • |CREAL,i,expression est équivalente à l'opération tableau(i)=expression. Utile pour transmettre une valeur de programme CPC Basic à un élément dans le tableau des valeurs réelles.
  • |DEG: équivalent de la commande DEG.
  • |DIV,i1,i2,i3: équivalent à l'opération tableau(i1)=tableau(i2)/tableau (i3).
  • |EXP,i1,i2: équivalent a l'opération tableau(i1)=EXP(tableau(i2)).
  • |FIX,i1,i2: équivalent à l'opération tableau(i1)=FIX(tableau(i2)).
  • |INT,i1,i2: équivalent à l'opération tableau(i1)=INT(tableau(i2)).
  • |LET,i1,i2: équivalent à l'opération tableau(i1)=tableau(i2).
  • |LOG,i1,i2: équivalent à l'opération tableau(i1)=LOG(tableau(i2)).
  • |LOG10,i1,i2: équivalent à l'opération tableau(i1)=LOG10(tableau(i2)).
  • |MUL,i1,i2,i3: équivalent à l'opération tableau(i1)=tableau(i2)*tableau(i3).
  • |PI,i: correspond à l'opération tableau(i)=PI.
  • |POW,i1,i2,i3: équivalent à l'opération tableau(i1)=tableau(i2)^tableau(i3).
  • |RAD: équivalent de la commande RAD.
  • |REV,i1,i2: équivalent à l'opération tableau(i1)=-tableau(i2).
  • |ROUND,i1,i2,expression: équivalent à l'opération tableau(i1)=ROUND(tableau(i2),expression).
  • |SGN,@variable,i: correspond à l'opération variable=SGN(tableau(i)).
  • |SIN,i1,i2: équivalent à l'opération tableau(i1)=SIN(tableau(i2)).
  • |SQR,i1,i2: équivalent à l'opération tableau(i1)=SQR(tableau(i2)).
  • |STR,@variable,i: correspond à l'opération variable=STR$(tableau(i)), où la variable est de type string et avec une longueur minimale de 11 caractères.
  • |SUB,i1,i2,i3: équivalent à l'opération tableau(i1)=tableau(i2)-tableau(i3).
  • |TAN,i1,i2: équivalent à l'opération tableau(i1)=TAN(tableau(i2)).
  • |VAL,i,@variable: égale à l'opération tableau(i)=VAL(variable) où la variable est de type string ou peut également être une chaîne constante sans que l'opérateur @.

Pour spécifier les paramètres qui correspondent à des indices des éléments du tableau de valeurs réelles peuvent indiquer valeurs constants, variables ou d'expressions qui produisent une valeur numérique dans la gamme de 0 à n - 1. Si les éléments doivent être utilisés comme des variables indépendantes et non comme une tableau de valeurs, il est conseillé de donner de la valeur des variables avec un nom descriptif et utiliser cette variable pour améliorer la lisibilité du code. Par exemple, si dans la valeur d'indice 0 va être stocké le résultat vitesse de calculer le rapport des valeurs d'indice 1 pour une distance et d'indice 2 pour le temps, vous pouvez écrire vitesse=0:distance=1:temps=2:|DIV,vitesse,distance,temps.

Exigences et l'installation de CPC Basic

Vous devez posséder un ordinateur avec:

Pour installer CPC Basic télécharger et décompresser le fichier CPC Basic.

Dans Windows Vista et Windows 7, si l'installation a été faite dans un répertoire considéré de système, comme Fichiers de programme ou Windows, vous devez exécuter CPC Basic avec des autorisations d'administrateur. Envisager de modifier les propriétés de CPC Basic pour le définir comme ça.

Pour réinstaller une nouvelle version de la CPC Basic n'est pas nécessaire de désinstaller la version que vous êtes sur le système, et réécrire par dessus la version précédente.

Si vous souhaitez supprimer CPC Basic, vous pouvez supprimer manuellement le répertoire d'installation.

Description des fichiers et des répertories dans l'application

Après l'installation de CPC Basic, dans le répertoire est choisi pour elle, sont les suivantes:

  • Fichier cpcbasic.exe: le fichier d'application principal.
  • Fichiers web.url et forum.url: accès direct sur le site et forum dédié à CPC Basic respectivement.
  • Répertoire Files: voici le fichier de configuration, les fichiers de polices pour l'application et les fichiers d'image mémoire base pour chaque modèle Amstrad CPC.
  • Répertoire Output: il génère des fichiers résultant de la compilation en fonction de la sortie sélectionnée, qui peut être soit binaire, l'assemblage, ccz80, CDT, DSK, snap. Sont également stockées dans ce répertoire le fichier de trace d'extension LOG qui peut être créé si au cours de l'utilisation des divers outils qui utilise CPC Basic (compilateur ccz80, generateur des fichiers d'image de cassette, de disque, de mémoire ou de l'exécution de l'émulateur) est une erreur.
  • Répertoire Programs: est l'emplacement par défaut pour les programmes qui sont enregistrées avec SAVE et sont chargés avec LOAD ou MERGE après CPC Basic. Initialement, ce répertoire contient plusieurs exemples de programmes qui peuvent être chargés dans CPC Basic.
  • Répertoire Utils: contient un certain nombre de sous-répertoires avec des utilitaires différentes utilisées par CPC Basic pour générer le résultat souhaité: compilateur ccz80, générateur de fichier CDT, DSK et snap et l'émulateur.

Il est recommandé de ne rien changer dans cette structure, excepté l'accès au répertoire de sortie pour les fichiers résultants de compiler et de modifier le contenu du fichier de configuration si nécessaire.

Le fichier de configuration

Dans le répertoire où vous installez CPC Basic, dans le sous-répertoire Files est le fichier cpcbasic.ini qui peut être modifié pour personnaliser l'apparence de l'application. Vous pouvez définir la couleur de chaque élément lorsqu'il est affiché dans la fenêtre de sortie et la taille de la police pour les fenêtres d'entrée et de sortie. Cela demande de modifier les valeurs numériques attribuées à chaque variable dans le fichier. Les valeurs associés à des couleurs sont celles de la palette de couleurs de Amstrad CPC, dans l'intervalle de 0 à 26. Par exemple, pour utiliser CPC Basic avec un fond rouge et la couleur du texte en blanc dans la fenêtre d'entrée allait changer et les variables PenInput PaperInput avec les valeurs 3 et 13, respectivement.

Pour donner effet à la modification de ce fichier est nécessaire d'enregistrer sur le disque et redémarrez l'application CPC Basic.

Ligne de commande

CPC Basic peut être utilisé à partir de la ligne de commande en exécutant le fichier cpcbasic.exe trouvé dans le répertoire où vous avez installé l'application. La syntaxe de ce mode d'utilisation est la suivante:

cpcbasic [/cpc:464|664|6128] [/out:bin|asm|ccz80|cdt|dsk|snap|run] [/real:number]

où:

  • /cpc spécifie le modèle Amstrad CPC pour lequel vous voulez générer le résultat.
  • /out spécifie le type de résultat qui sera généré: fichier binaire (bin), code assembleur (asm), code ccz80 (ccz80), fichier CDT (cdt), fichier DSK (DSK), fichier image de mémoire (snap) ou l'exécution du programme dans l'émulateur (run).
  • /real spécifie le nombre de valeurs réelles à être utilisés par le programme.

La compilation du fichier résultant en mode ligne n'est pas généré dans le répertoire Ouotput sortie, mais dans le même répertoire que le fichier source Basic, y compris le fichier de trace LOG. La sortie de messages d'erreur à partir de la compilation se fait par la console. Si la génération échoue dans l'un de ses phases CPC Basic retourne le code de sortie 1, si tout est correcte retourne code de sortie 0.

Pour la compilation en ligne est nécessaire d'avoir la structure de répertoire de l'application, il ne suffit pas de fichier cpcbasic.exe.

Liens connexes

Site dédié à CPC Basic.

Forum dédié à CPC Basic, pour des questions de programmation, de rapports de bogues trouvés dans la demande, des suggestions d'amélioration, des offres d'aide, et ainsi de suite.

Notes techniques

CPC Basic est écrit en C#.

Il est créé entièrement à partir de zéro, avec rien de commun avec les versions antérieures de CPC Basic, qui était plus comme un résultat d'une enquête sur les compilateurs de produits aussi utiles dans la pratique de programmation.

Ses rouages sont basées sur la conversion du fichier source Basic en code ccz80 qui est compilé et converti en code binaire.

Pour la compilation ccz80 utilisé avec des bibliothèques standards et les propres celles du modèle Amstrad CPC spécifié plus une bibliothèque de fonctions supplémentaires pour émuler certaines des commandes et des fonctions de Locomotive Basic.

Par la suite, comme l'a demandé, le code binaire est intégré dans un fichier image de cassette, de disque ou de mémoire. Si c'est indiqué l'émulateur est lancé automatiquement avec le chargement d'une image mémoire qui contient le code binaire.

Le code machine est généré à charger dans la mémoire d'adresse &H4000, occupant la mémoire continue comme la longueur du code. Avec la fonction HIMEM peut savoir qui est la dernière adresse de la mémoire occupée par le programme, à partir de laquelle la mémoire peut être considérée comme libre. En outre, le code machine généré utilise la mémoire de &H170 & H3FFF comme la mémoire dynamique pour les opérations internes, de sorte cet espace ne peuvent être utilisés.

Initialement admis CPC Basic variables entier et réel comme Locomotive Basic, mais au cours de son développement était que le taux d'évaluation des expressions non seulement amélioré les versions antérieures de CPC Basic ou Locomotive Basic, pendant près de toutes les expressions une véritable valeur ajoutée utilisé comme variable ou en utilisant une fonction intrinsèque, et cela signifiait que toutes les valeurs d'expression doit être converti en réel pour fonctionner correctement. Il a donc été décidé de renoncer à des variables telles que elle a également constaté que dans la majorité des programmes Basic, les applications de jeux, qui ne sont pas nécessaires pour les utiliser, parce que les données qu'ils utilisent sont coordonnées, les scores, des identifiants d'éléments, etc. , qui sont toujours des entiers positifs. En tout cas, a été développé en utilisant les commandes RSX qui gèrent des valeurs réelles dans le but d'utiliser ces montants de type de données à des moments tels que nécessaire.

Remerciements

  • Wesley Clarke par sa font Amstrad CPC, qui se fondent ceux utilisés par CPC Basic.
  • Julián Albo par l'assembleur pasmo avec lequel les fichiers CDT sont générés.
  • Ludovic Deplanque (Demoniak) par le ManageDSK utilité pour générér les fichiers DSK.
  • Cesar Nicolas Gonzalez (CNGSoft) par l'émulateur CEPE pour exécuter le code généré automatiquement.

Histoire

  • 11 Mars 2012: Publication du CPC Basic la version 3.0.0.
  • 11 Mars 2012: Publication du CPC Basic la version 3.0.1. Correction de la declaration de tableaux à le code ccz80.
  • 14 Mars 2012: Publication du CPC Basic la version 3.0.2. Afficher le numero de la version dans le titre de la fenêtre.
  • 17 Mars 2012: Publication du CPC Basic la version 3.0.3. Correction pour éviter le blocage lorsque le résultat de la compilation du fichier ccz80 produit trop de texte. Ajouté boutons pour accéder à les répertoires de programmes et de sortie.
  • 19 Mars 2012: Publication du CPC Basic la version 3.0.4. Correction dans le format de sortie de l'ordre CAT.
  • 17 Mai 2014: Actualization de ccz80.