★ APPLICATIONS ★ DIVERS ★ EXTENSIONS BASIC CPC 464 (AMSTRAD MAGAZINE) ★ |
Extensions Basic CPC 464 (Amstrad Magazine) | Applications Divers |
Le système d'exploitation des micro-ordinateurs AMSTRAD CPC présente la particularité de permettre à l'utilisateur de définir des instructions BASIC personnelles, et de les faire prendre en compte par l'interpréteur. Le programme BASIC et le listing ASSEMBLEUR ci-joints définissent quelques instructions graphiques qui manquent dans le BASIC des CPC, et plus particulièrement dans celui du 464.La seule saisie du programme BASIC vous permettra d'utiliser les extensions définies. Le listing ASSEMBLEUR a été joint pour permettre à ceux qui possèdent un assembleur d'intégrer, si ils le désirent, les extensions qu'ils auraient réalisées avec celles proposées ici. Quelques précisions avant de commencer. Tout d'abord, l'adresse à laquelle sont logées les extensions a été calculée de façon à ce que les possesseurs d'une unité de disquettes puissent les charger avec leur drive en service. Enfin ce programme a été écrit pour un CPC 464 et fait appel à une routine système (inversion de signe – saut à l'adresse BDC7) qui ne fait pas partie du JUMPBLOCK standard de l'AMSTRAD. Il est donc possible que son adoption sur les modèles 664 et 6128 nécessite quelques adaptations en ce qui concerne l'utilisation de la routine citée. Toute les autres routines utilisées font partie du JUMPBLOCK standard de l'AMSTRAD. Les «resident system extensions» L'intégration d'instructions dans le BASIC des CPC se fait en utilisant les RSX (resident system extensions). Cette fonctionnalité permet au système de considérer des parties de RAM au même titre que des ROM d'extension. L'inclusion des extensions dans le système se fait en utilisant la routine RAM située à l'adresse BCD1. L'appel de cette routine nécessite de charger : – Dans la paire de registres BC, l'adresse d'une zone RAM contenant l'adresse de la table des commandes d'extension. – Dans la paire de registres HL, l'adresse d'une zone RAM de 4 octets qui seront utilisés par le système pour intégrer l'extension. La table des mots d'extension et les 4 octets réservés au système doivent obligatoirement résider dans les 32 K de RAM centrale, c'est-à-dire dans la partie de la RAM qui n'est jamais en «concurrence» avec les ROM. Définition de nouvelles instructions BASIC Les nouvelles instructions BASIC définies doivent être mises dans la table des commandes d'extension. «Chaque nouveau mot» du BASIC est défini dans une pseudo-instruction assembleur du type DEFB (ou DB selon l'assembleur utilisé). Le bit 7 du dernier caractère de chaque mot sera mis à 1. C'est ainsi que la définition du mot PENG sera : DEFB «P», «E», «N», «G» + = 80 La table des commandes doit se terminer par un octet à zéro, qui indique au système la fin de table. Il vous fait aussi décrire, dans le programme de création des extensions, une suite de jumps aux routines correspondant aux instructions. Ces jumps doivent être dans le même ordre que les mots définis dans la table des commandes. Lors de son utilisation dans un programme basic, la syntaxe d'une instruction contenue dans une extension sera toujours de la forme suivante : nom instruction, liste de paramétres, le symbole correspond à SHIFT- .) Les extensions basic réalisées Les extensions basic qui vous sont proposées ci-après sont au nombre de 5. Elles sont destinées à pallier partiellement certains manques du Basic Locomotive (sur 464 essentiellement). Ces extensions sont les suivantes :
Cette instruction trace sur l'écran un rectangle vide dont les caractéristiques sont les suivantes :
– BOXF,x,y,dx,dy,[c] Cette instruction dessine sur l'écran un rectangle plein. Les paramètres ont la même signification que dans l'instruction BOX.
Une fois une fenêtre graphique définie par SCREEN, tous les ordres graphiques utilisés s'éxécuteront dans cette fenêtre et ne déborderont par sur le reste de l'écran. Le plein écran graphique correspond à l'instruction SCREEN, 1,640,1,400. Utilisation des extensions dans un programme L'utilisation des extensions qui vous sont proposées ici (et plus généralement de toute extension BASIC) dans un programme que vous réalisez nécessite la reconnaissance de ces extensions par le système. Pour cela, il est indispensable que, avant de saisir ou d'éxécuter votre programme, vous exécutiez le programme basic (ou le module assembleur) qui vous est fourni ici.
|