CODING ★ LE MEMORY MAP DU PCW 8256 (MICRO-MAG) ★

Le Memory Map du PCW 8256 (Micro-Mag)
Parmi les nombreux points d'intérêts des programmeurs (qu'ils soient hobby-istes ou professionnels), il en est un de toute première importance : la cartographie mémoire de leur machine. En effet, celle-ci permet d'obtenir des informations non négligeables sur la structure du système. Elles deviennent quasiment indispensables dès que l'on désire programmer en Assembleur ne serait-ce que pour afficher quelque chose à l'écran. En effet, comment afficher un caractère ou un point si l'on ne sait même pas où envoyer les informations relatives à cette opération ?

Obtenir le Memory Map d'un micro-ordinateur est à, l'heure actuelle, une opération relativement aisée pour la majeure partie des machines vieilles de plus de six mois car au bout de cette période, soit le constructeur ne se laisse plus trop tirer l'oreille et publie un firmware (dans le cas d'AMSTRAD), soit les catalogues des principaux éditeurs regorgent de livres d'une qualité allant du très bon au franchement médiocre, traitant largement du sujet.

Avant cette période, le parcours du combattant commence. Il faut effectuer des recherches dans la mémoire petit à petit (ce qui est presque simple pour une machine sans commutation de banques mémoire et quasiment impossible sur un micro du type du PCW 8256), soit désassem-bler le système d'exploitation, ce qui n'est pas, reconnaissons-le, à la portée de tout le monde ! ! !. Voila pourquoi, chez AMSTRAD Magazine et dans l'espoir que certains d'entre vous arrêtent de s'arracher les cheveux nous publions une première approche des spécifications mémoire du PCW 8256.

Notons toutefois que cet aricle n'a pas pour vocation de permettre à tout un chacun de lancer des investigations dans le système d'exploitation. Les données publiées ici sont insuffisantes pour exploiter les routines système, elles permettront uniquement à certains de mieux connaître leur machine. Tout d'abord revenons au problème du bank switching. Cette méthode employée fréquemment sur les machines AMSTRAD permet aux processeurs tels que le Z80 d'adresser plus que les 65535 octets pour lesquels ils ont été initialement prévus et d'accroître, en théorie sans limite, les capacités mémoires des machines, grâce à des blocs mémoires dont le volume est compris entre 0 et 64k-octets. En pratique, si un programme nécessite plus de 64k de mémoire, le surplus sera placé dans une autre page de RAM et une commutation de page sera effectuée chaque fois que l'on désirera accéder à la banque mémoire contenant le morceau de programme à utiliser. Il est également possible d'utiliser cette mémoire supplémentaire sous forme de disque virtuel mais nous reviendrons plus loin sur ce sujet. Dans le cas du PCW la capacité physique de mémoire possible est de 1 méga octets.

Les blocs mémoire du PCW

Les blocs mémoire du PCW sont divisés en quatre parties : la première partie est constituée par une page de 64k contenant le bios (c'est-à-dire le programme du système d'exploitation de la machine permettant de travailler en CP/M + ) ainsi que la mémoire écran. La seconde par une autre page de 64k dans laquelle sont contenus les JUMPBLOCKS (on appelle JUMBLOCKS, les points d'accès au BDOS. C'est par ces vecteurs que l'on accède aux fonctions principales du système d'exploitation) et le TPA (zone maximale dans laquelle peut travailler un programme : 61k pour le PCW, 32k pour les CPC 464 et CPC 664 sous CPM 2.2). Enfin la troisième page d'environ 32 k qui contient une partie du bios et des buffers (zones temporaires de stockage pour des données, par exemple à destination du lecteur de disquettes).

La quatrième page est de longueur variable (112k octets en version de base) et contient le disque virtuel plus communément appelé disque "m". Le disque virtuel est comme son nom l'indique une partie de la mémoire d'une machine exploitée comme une disquette, permettant ainsi un stockage de données d'accès très rapide mais volatile (les données sont perdues dès la mise hors tension de la machine). Cette partie est très utile par exemple dans le cas d'un programme, pour stocker des modules, sans avoir à subir les pertes de temps occasionnées par les accès au lecteur de disquettes.

Après avoir examiné la mémoire, étudions tout ceci plus en détail. Le secteur le plus intéressant du système est contenu en page 1 puisque, rappellons-le, c'est ici que sont stockés le bios et le bdos (partie du bios concernant les lecteurs de disques), ainsi que la mémoire écran : 0000 A 3FFF contient le bloc principal du bios CP/M. 4000 A 7FFF contient la mémoire écran structurée en bit map c'est-à-dire au point par point (les caractères sont stockés sous leur forme graphique et non par leur code ASCII). B800 sur une longueur de 2040 octets contient les matrices des caractères 0 à 255 sous forme de grilles de 8 par 8 pixels. B600 contient toutes les routines relatives aux défilements d'écrans.

Enfin, sur notre schéma, les blocs numérotés 9 à 15 représentent le disque virtuel (disque "m"). Toutes les pages mémoires ainsi que les routines systèmes relai-ves à la gestion de l'écran sont situées dans les blocs 7 2 1 et 0. Notons que ces adresses correspondent aux modules du programme en général mais ne doivent pas, dans un soucis de respect avec le standard CP/M +, être appelées directement : toutes les routines doivent être appelées au travers des JUMPBLOCKS.

Les packs de jumblocks

Les JUMPBLOCKS sont regroupés en-packs, c'est-à-dire en série de points d'appels dont les adresses se suivent. Ces packs sont à notre connaissance au nombre de cinq intitulés comme suit :

  • Disc driver (gestionnaire de disques) : adresse 80 à 83.
  • SI0 driver (gestionnaire de l'interface série paralèlle CPS8256) : adresse B6 à BC.
  • terminal émulator (gestion de l'écran) : adresse BF à D1.
  • keyboard manager (toute la gestion du clavier test de touches etc.) : adresse D4 à EO.
  • mise (permet de saisir toutes les informations relatives aux système : numéro de version CP/M, configuration de la machine, etc.) : adresse E3 à E9. Espérons que ces quelques lignes qui n'ont pas pour vocation de vous dévoiler toutes les subtilités du PCW 8256 auront néanmoins satisfait votre curiosité, et suscité chez certains l'envie d'aller plus loin avec leur machine.

E. Charton , AMSTRAD MAGAZINE n°8

★ ANNÉE: 1985
★ AUTEUR: Eric Charton

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

Lien(s):
» Littérature » Getting Started with BASIC and LOGO on the Amstrad PCW 8256 and PCW 8512
» Littérature » Sybex - Multiplan - CPC 6128 - Pcw 8256 - 8512 - Pcw 9512
» Littérature » Bien Débuter avec votre PCW (Micro Application)
» Hardware » Amstrad Pcw - Gonglez Votre Pcw (Cahier de l'Amstrad)
» Littérature » Mastering the Amstrad Pcw 8256 - 8512 (Amstrad Computer User)
» Littérature » Micro Application - Le Grand Livre de l'Amstrad PCW
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 389 millisecondes et consultée 1640 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.