APPLICATIONSDIVERS ★ 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 :

  • PENG,c où c désigne un numéro d'INK. Cette instruction précise la couleur du PEN graphique, couleur qui sera utilisée pour l'éxécution des instructions graphiques.
  • PAPF.RG,c où c désigne un numéro d'INK. Cette instruction définit la couleur du PAPER graphique, c'est-à-dire la couleur qu'aura l'écran graphique lors de l'éxécution CLG.
  • BOX,x,y,lx,ly[,c]

Cette instruction trace sur l'écran un rectangle vide dont les caractéristiques sont les suivantes :

  • l'angle supérieur gauche a pour coordonnées x et y.
  • les dimensions du rectangle sont données par lx (largeur) et ly (hauteur).
  • la couleur dans laquelle est tracée le rectangle correspond au numéro d'INK donné dans c si ce paramètre est précisé. Dans le cas où le paramètre c n'est pas précisé, le rectangle est tracé dans la couleur du PAPER graphique.

– 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.
– SCREEN,x1 ,x2,y1,y2. Cette instruction définit la fenêtre attribuée à l'écran graphique. Les paramètres utilisés ont la signification suivante :

  • x1 et x2 sont les coordonnées des bords droit et gauche de la fenêtre graphique.
  • y1 et y2 sont les coordonnées des bords haut et bas de la fenêtre graphique.

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.
Nota : les instructions BOX, BOXF ne modifient ni la position courante du curseur, ni la valeur du PEN graphique. En cas d'erreur de syntaxe dans une des instructions proposées vous n'aurez pas de message d'anomalie. Tout simplement, l'instruction concernée ne s'éxécutera pas.

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.

AMSTRAD MAGAZINE n°6

★ EDITEUR: AMSTRAD MAGAZINE
★ ANNÉE: 1985
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: R.P. Spiegel
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-Extensions  Basic  CPC  464    (Amstrad  Magazine)    LISTINGDATE: 2016-04-30
DL: 260
TYPE: text
SiZE: 3Ko
NOTE: Typed by XavSnap ;

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » RSX Extended BASIC (Schneider CPC-Welt)
» Applications » RSX Text-Basic (CPC Magazin)
» Applications » Extended Basic (CPC Magazin)
» Applications » Extended Basic : 36 Neue RSX-befehle (Schneider Aktiv)
» Applications » Extensions ... Expanded BASIC for the CPC464 (Home Computing Weekly)
» Applications » Extended Basic
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 526 millisecondes et consultée 1905 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.