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> : 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 <Expression1 , Expression2> : 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,
<Expression1> contiendra l'adresse où DOIT S'EXECUTER LE CODE BINAIRE et
<Expression2> 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
| A voir aussi sur CPCrulez , les sujets suivants peuvent vous intéresser... |
» Coding - Crossdev - CCZ80
» Coding - Crossdev - Mycpctoolkit
» Coding - Crossdev - PhrozenC
» Coding - Crossdev - Cpcrslib