CODINGLA BIBLE DU CPC 6128

La bible du CPC 6128 : 1.01.2 Extension d'instructions à travers RST

Etant donné ce mode de gestion de la mémoire, on peut cependant se demander comment peut se faire l'accès aux ROMs ou aux RAMs situées dans les même zones. Pour éviter aux utilisateurs le travail de programmation assez considérable que nécessiteraient normalement ces tâches, les programmeurs du système d'exploitation ont eu une riche idée. Grâce à des programmes spéciaux et à une utilisation habile des instructions RESTART du Z80, ils ont pratiquement abouti à faire des restarts RST1 à RST5 une extension du jeu d'instructions du Z80. Ces RSTs peuvent être employés comme des JPs ou des CALLs ordinaires. Certains RSTs réclament toutefois une adresse sur 3 octets. Le troisième octet, supplémentaire, détermine dans quelle ROM le JP ou le CALL doit aller.

LOW JUMP RST 1

Cette instruction Restart permet d'appeler une routine du système d'exploitation ou de la RAM située dans la même zone d'adresses. L'instruction RST doit être suivie immédiatement par l'adresse de la routine à appeler. Comme 14 bits suffisent pour définir une adresse comprise entre 0 et &3FFF, les deux bits supérieurs restants sont utilisés pour sélectionner la ROM ou la Ram:

Bit 14=0 Sélection du système d'exploitation
Bit 14=1 Sélection de la Ram
Bit 15=0 Sélection de la ROM Basic
Bit 15=1 Sélection de la Ram

Un appel de la routine système pourrait donc se présenter ainsi:

RST 1
DW &1410+&8000

Le bit 15 mis sélectionne la RAM dans la zone de &C000 à &FFFF, alors que le bit 14 annulé appelle le système d'exploitation.

Le code à l'adresse 8 est constitué uniquement par un saut à l'adresse &B98A.

SIDE CALL RST 2

Cette instruction Restart permet d'appeler une routine d'une ROM d'extension. Cette instruction est utilisée lorsqu'un programme sous forme d'un module de ROM nécessite plus de 16 kilo-octets et ne peut pas tenir dans un seul module d'extension. Le SIDE CALL permet alors d'appeler une routine se trouvant dans la seconde, la troisième ou la quatrième ROM appartenant au programme, sans qu'il soit pour cela nécessaire de connaître le numéro absolu de la ROM qu'il s'agit d'appeler ainsi. L'instruction RST 2 doit être suivie de l'adresse de la routine - &C000, c'est-à-dire de l'adresse relative par rapport au début de la ROM. Les deux bits supérieurs servent à sélectionner l'une des quatre ROMs différentes utilisées.

Le code à l'adresse &0010 est constitué uniquement par un saut à l'adresse &BA1D.

FAR CALL RST 3

Cette instruction Restart permet d'appeler une routine n'importe où en ROM ou en RAM. L'instruction RST 3 doit être suivie de l'adresse sur deux octets d'un bloc de paramètres composé de trois octets. Les deux premiers de ces octets-paramètres contiennent l'adresse de la routine qui doit être appelée et le troisième octet doit contenir l'état ROM/RAM souhaité. Les valeurs de 0 à 251 permettent d'appeler une ROM supplémentaire et les quatre valeurs restantes ont la fonction suivante:

Valeur &0000-&3FFF ;&C000-&FFFF
-------------------------------------------------
252 Système d'exploitation Basic
253 Système d'exploitation RAM
254 RAM ; Basic
255 RAM ; RAM

Le code à l'adresse &0018 est constitué uniquement par un saut à l'adresse &B9C7.

RAM LAM RST 4

Cette instruction Restart permet de lire à partir d'un programme en langage-machine le contenu de la RAM, quel que soit l'état de la ROM choisi. L'instruction RST 4 remplace alors l'instruction

LD A,(HL)

HL doit donc contenir l'adresse de la case mémoire dont le contenu doit être lu. Le code à l'adresse &0020 est constitué uniquement par un saut à l'adresse &BAD6.

FIRM JUMP RST 5

Cette instruction Restart permet de sauter à une routine du système d'exploitation. L'adresse doit être placée immédiatement à la suite de l'instruction RST 5. La ROM du système d'exploitation est sélectionnée avant le saut à la routine puis elle est déconnectée après le retour. Le code à l'adresse &0028 est constitué uniquement par un saut à l'adresse &BA35.

★ ANNÉE: ???

Page précédente : La bible du CPC 6128 : 1.01.01 L'organisation de la mémoire
Je participe au site:

» 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 384 millisecondes et consultée 1545 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.