CODING ★ TUTORIAL 1 , UTILISATION DE MAXAM ★

Tutorial 1, utilisation de Maxam

MAXAM est un logiciel qui permet de générer un code binaire à partir  d'un fichier source édité en ASCII. Pour parvenir à ses fins il dispose de :

D'un éditeur permettant la création des fichiers source joint à un assembleur générant le code binaire à partir du fichier ASCII précédemment édité et d'un Moniteur ( débuggeur ) / désassembleur destiné à fouiller dans la RAM ou les ROMS basic ou externes . MAXAM permets également de créer du code source à partir de lignes BASIC.

L'utilisation de MAXAM est très simple, en effet suffit de le lancer avec la commande AMSDOS ( pour la version distribuée dans ce tutorial ) :

Run"disc

Une fois de retour au Basic, tape la commande RSX :

ùM ( pour les clavier AZERTY )

ou

|M ( pour les clavier QWERTY )

Un premier menu apparaît … taper « T » pour accéder au sous-menu « Edit Text ».
Puis « E » pour accéder a l'éditeur de source.

Maintenant nous sommes près à écrire notre premier programme.

Le ORG ( origine )

Donnons à notre compilateur ( ici MAXAM ) l'adresse d'implantation du code que nous allons assembler, avec la directive ORG ...

          ORG  10000

Ici en 10000, donc nous utiliserons ORG 10000, c'est-à-dire que notre programme pourras être exécuter avec un CALL 10000 à partir du basic ou a partir d'un autre programme en langage machine ( ou assembleur ).
Noter qu'une directive n'est pas une instruction! L'instruction implante un code binaire en  RAM , la directive donne un ordre précis à l'assembleur. Que l'on utilise l'assemblage sous  BASIC ou l'éditeur, ces directives ont exactement le même rôle!

Revenons à ORG pour dire que c'est cette instruction qui dit à l'assembleur ou commencer l'assemblage. ORG peut s'exprimer sous 2 formes:

1 / ORG : Expression peut être une simple adresse, Ex : ORG 10000
 commence l'assemblage en 10000 , le résultat d'un calcul Ex : ORG 5000*2 commence
 toujours l'assemblage en 10000 , voire contenir des labels définis par le programme, Ex :

 ORG ADRESSE+7 assemblera en 10007 .
 ADRESSE EQU 10000

 2 / ORG : Cette forme sera souvent utilisée avec les
 versions disquette ou cassette. En effet, on aura parfois besoin de fichiers binaires
 exécutables à une adresse occupée par MAXAM au cours de l'assemblage. Dans ce cas,
  contiendra l'adresse où DOIT S'EXECUTER LE CODE BINAIRE et
  l'adresse ou l'assembleur STOCKE LE CODE BINAIRE.

Début de mon premier programme

Nous allons dans cette exemple utiliser les vecteurs system &BC0E qui à la charge de changer le mode vidéo du CPC

          LD    A,0             ; mode 0
          CALL &BC0E            ; Init le mode graphique

simple non ?

Ont continue avec la modification de la couleur du "border" par la couleur 0 ( le noir )

          LD   B,0              ; couleur 1
          LD   C,0              ; couleur 2
          CALL &BC0E            ; Init la couleur du "Border"

Pourquoi définir deux couleurs ? tout simplement pour le faire clignote ! ( Biensur le cliognotement entre la couleur 0 et la couleur 0 est invisible à l'écran)
Pour faire plus simple, plus propre, et aussi plus rapide ... utilisons l'initialisation du vecteur BC par la valeur 0

Donc remplaçons la partie du code précédent par ...

          LD   BC,0             ; couleur 1 et 2 à 0
          CALL &BC0E            ; Init la couleur du "Border"

http://cpcrulez.fr

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