CODINGLA BIBLE DU CPC 6128

La bible du CPC 6128 : 5 Le moniteur (!)

Le moniteur

Certainement qu'un bon nombre d'entre vous brûlent de découvrir ce que renferme précisément le listing de la ROM, qui n'est rien d'autre que le contenu symbolique du système d'exploitation. Malheureusement, un peu de persévérance vous sera nécessaire. Si vous ne disposez pas déjà d'un moniteur de langage machine, il faut d'abord que vous tapiez celui que nous publions ici.

Excepté deux petites routines machine, l'une pour lire un octet dans la mémoire, l'autre pour aller chercher un octet dans un fichier, le programme est entièrement écrit en Basic. Comme toutefois le jeu d'instructions tout entier est d'abord placé dans des tableaux, le désassembleur reste cependant très rapide.

Nous devons cependant confesser une insuffisance. Le procédé utilisé ne permet pas de traiter certaines instructions du type (IX+xx). Si une telle instruction apparaît, le message "!! instruction spéciale ...." apparaîtra dans le listing. En cas de besoin, il faudra donc que vous insériez vous-même cette instruction, en utilisant sa forme binaire. De telles instructions sont cependant vraiment rares. Elles apparaissent seulement deux ou trois fois dans le Sound Manager.

Par ailleurs, la représentation des instructions ne correspond pas tout à fait au standard du Z80. C'est ainsi par exemple que, dans notre moniteur, les valeurs immédiates sont marquées par une dièze les précédant. Les valeurs de deux octets non marquées de cette façon sont des adresses.

Vous avez la possibilité de désassembler la RAM, la ROM ou un fichier. Cette dernière possibilité n'est que rarement offerte par d'autres programmes. Il est intéressant de l'utiliser lorsque le programme à traiter ne peut tenir en mémoire en même temps qu'un programme Basic.

Avant que nous n'en venions à la description des instructions, encore un petit conseil: laissez tout d'abord de côté les lignes 20 à 40, de façon à ce qu'une erreur de syntaxe provoquée par des fautes de frappe ne soit pas inhibée. De toute façon, si vous n'avez pas l'intention de travailler à partir d'un fichier, ces lignes peuvent être négligées car elles servent uniquement à empêcher le "nettoyage" de la mémoire qui est sinon inévitable lors de l'ouverture d'un fichier. Vous devez également déduire de ces lignes que vous devez appeler le programme "mimo.bas", pour que OPENIN trouve bien un fichier.

Venons-en maintenant aux quelques instructions disponibles. Le principe est que tous les paramètres doivent être placés immédiatement à la suite de l'instruction, en hexadécimal. Si vous voulez, par exemple, fixer l'adresse actuelle sur $0048, entrez: m48 >ENTER<

ddésassembler à partir de l'adresse actuelle. Cette fonction est interrompue par la frappe d'une touche quelconque
ff doit être immédiatement suivi du nom de fichier complet du fichier que vous voulez traiter. Avec l'entrée suivante, vous donnez l'adresse relative avec laquelle le fichier doit apparaître à l'écran. Cela ne sert qu'à la présentation. Le fichier lui-même commence de toute façon à partir du début. Les instructions d'affichage ultérieures se rapportent alors à ce fichier. Le mode fichier est interrompu par la fonction m.
iécrire des octets dans la mémoire. Cette instruction ne nécessite aucun paramètre. Les octets sont réclamés un par un, à partir de l'adresse actuelle. Cette fonction se termine lorsque vous effectuez une entrée vide.
ofixer le fichier de sortie. 0 est le cas normal qui amène l'affichage entier en mode 1 sur l'écran. 1 amène l'affichage en mode 2 à l'écran, divisé de façon à ce que le tiers supérieur soit responsable de l'affichage normal de la mémoire alors que le reste est réservé au désassembleur. Lorsque vous passez de l'affichage au désassembleur et vice versa, les fenêtres sont conservées. Enfin, 8 dirige la sortie sur l'imprimante.
mfixe l'adresse actuelle à laquelle se réfèrent toutes les instructions ultérieures.
bfixe la configuration mémoire. L'octet réclamé a la structure qui a été décrite plus haut dans cet ouvrage. FE sélectionne par exemple les deux ROMs intégrées plus la RAM placée entre ces deux ROMs, FF ne sélectionne que la RAM
$convertit un paramètre décimal en hexadécimal.
%convertit un paramètre hexadécimal (de quatre chiffres maximum) en un nombre décimal.
xmet fin au programme et restaure la limite de la mémoire
?effectue un warmstart et affiche la liste des instructions.
>ENTER<entré seul liste le contenu de la mémoire en hexadécimal et en ASCII.

Il nous reste encore à espérer que la frappe du listing suivant ne vous posera pas trop de problèmes. Notez que 'A' dans le listing correspond à la flèche verticale.

** DOWNLOAD MONITEUR.DSK **

★ ANNÉE: ???

Page précédente : La bible du CPC 6128 : 4.02.00 Références à la RAM système
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 693 millisecondes et consultée 1140 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.