Avant de commencer à coder il va nous falloir apprendre à utiliser certains outils.
Le premier de ceux-ci est bien évidement l'assembleur.
L'assembleur c'est le nom que l'on donne au langage.
Mais c'est aussi et surtout l'outil qui nous permet de coder en assembleur.
L'outil "assembleur" permet d'entrer le programme appelé dans ce cas: "code" dans la RAM du CPC.
L'assembleur est un compilateur. Ce que vous entrez est ensuite traduit en langage machine quand vous l'assemblez.
Le langage machine c'est simplement la langue comprise par la machine.
Comme pour vous, si on veut vous parler, il faut le faire dans votre langue. Pour votre Sinclair c'est pareil.
Son language c'est le binaire. Vous en avez certainement déjà entendu parler, le binaire c'est une valeur de 0 ou 1.
Pour simplifier les choses on a décidé de regrouper les bits (une valeur 0 ou 1), par paquets de 8. C'est ce qu'on appelle un octet.
Un octet fais donc 8bits et chacun d'eux peut être à 0 ou à 1. Nous le verrons plus loin, tout ceci formera ensuite une valeur. Cette valeur ira de 0 à 255.
Nous pouvons représenter un octet de cette façon:
Chaque case numérotée de 0 à 7 de la droite vers la gauche peut avoir la valeur 0 ou 1.
Pourquoi est-ce que je vous parle de tout cela ? Simplement parce que le processeur lui, ira lire en RAM ces octets qui pour lui sont des instructions.
C'est donc cette suite d'octets qui sont son langage. La valeur d'un octet (ou de deux) correspond pour le processeur à une action.
Prennons en exemple l'instruction NOP, instruction la plus simple comprise par le Z80 et qui veut dire: "ne fait rien pendant 1μs".
Vous écrivez donc "NOP" dans votre éditeur. Écrire "NOP" c'est écrire en assembleur.
Quand vous assemblerez votre code, celui-ci sera traduit par: #00. Cet octet que l'on appelle "opcode" sera placé en RAM ou sauvegardé dans un fichier suivant ce que l'on veut.
Quand le Z80 executant le code croisera un #00 cela voudra donc dire pour lui: NOP
D'autres valeurs voudront dire autre chose bien entendu.
Sur Sinclair il y a plusieurs assembleurs comme Spectrum Assembler; Astron; Zeus assembler... La liste serait longue et ce site n'ayant pas pour but de vous lister tous ceux-ci, il faut donc bien en choisir un.
Certains émulateurs comme ZXspin proposent eux aussi un assembleur intégré. C'est certainement la solution la plus pratique pour commencer.
C'est en tout cas celle que j'ai choisi pour ces cours.
Une simple recherche sur votre moteur de recherche vous permettra de trouver l'émulateur ZXspin.
Pour pouvoir coder dessus vous devrez:
- Ouvrir l'éditeur en allant dans "Tools" puis "Z80 Assembler".
- Écrire votre routine dans la partie édition.
- Assembler votre routine en suivant le menu: "File" puis "Assemble".