ASMtrad CPC

Apprenez l'assembleur Z80

Mon Raspberry PI400 est ma machine de développement sur CPC par CheshireCat.

Pi400 ilustration

Quand le Raspberry PI400 est sorti, je dois dire que j’étais très enthousiaste :
- Pour 70 Euros on pouvait avoir un ordi qui rappelait furieusement ceux des années 80 : Tout l’ordi se résume à un clavier.
- On n’a qu’à brancher la prise d’alimentation, l’écran, une souris et hop ! Un bébé Amiga.
Quelques meetings informatiques plus tard, et après le transport de plusieurs dizaines de kilos de PC conventionnel, il m’est venu l’envie de voyager plus léger.
Désormais, mes meetings se feront avec un CPC et un clavier rouge et blanc qui tient dans mon sac à main !
J’ai installé un PI400 en machine de dev, avec tout ce qu’il faut pour coder les plus beaux effets de démo dans les meilleures conditions.
Vous voulez faire la même chose ? Voici la recette !

Tout d’abord, je vous propose de vous débarrasser du Raspberry Pi OS.
On va le remplacer par Ubuntu, plus complet et plus joli. Pour cela, rendez-vous à cette adresse pour lire la procédure d’installation :
https://ubuntu.com/tutorials/how-to-install-ubuntu-desktop-on-raspberry-pi-4#1-overview
A noter, il convient d’installer la version ARM64 d’Ubuntu.

Visual Source Code

Ensuite, on va pouvoir installer un éditeur pour nos sources Z80.
On va faire dans le classique, et installer Visual Source Code (Un produit Microsoft, et oui!)
https://code.visualstudio.com/download

C’est le .deb pour Arm64 qu’il faut télécharger :

version deb à télécharger

Pour installer le .deb, on peut au choix faire un clic droit sur le fichier dans un navigateur,
puis « Ouvrir dans une autre application », puis sélectionner « installation de l’application ».

installation de l'application

Les fans de ligne de commande iront dans le répertoire « Téléchargements » et taperont la commande:

            sudo apt-get install ./[Nom du fichier.deb]
            

Ensuite, on va installer d’autres outils et librairies disponibles en standard dans Ubuntu :

            sudo apt-get install pkg-config libsdl2* build-essential libgtk-3-dev cmake php
            

apt-get va télécharger un paquet d’archive, puis les installer.
On va devoir le laisser tranquille un moment. En attendant, on va pouvoir installer…

CPCEC-GTK

CPCEC n’est pas l’émulateur le plus précis, mais la version agrémentée du débugger de Norecess est très pratique pour le débugging.
Allez télécharger l’archive à l’adresse suivante :
https://bitbucket.org/norecess464/cpcec-gtk/downloads/

Allez dans le répertoire « Téléchargement » et dézippez le fichier que vous venez de recevoir norecess464-cpcec-gtk-9c2da44947b8.zip

Malheureusement les sources ont quelques problèmes de paramétrage, qu’il va falloir corriger. Pas de panique, c’est assez simple.

Allez dans le répertoire nouvellement créé et ouvrez le fichier cpcec-gtk.mk. On va utiliser la fonction « chercher/remplacer tout » :

Remplacez /usr/bin/g++-10 par /usr/bin/g++
remplacez /usr/bin/gcc-10 par /usr/bin/gcc

Remplacez /home/norecess464/Development/GitLab/cpcec-gtk/ par
/home/[Votrelogin]/Téléchargements/norecess464-cpcec-gtk-9c2da44947b8/

Une fois le fichier modifié et enregistrez, passer en ligne de commande dans le répertoire du programme. On va tout compiler par un :
make

Le programme se compile. Dans le répertoire, un nouveau fichier « cpcec-gtk.deb » apparaît.

            sudo apt-get install ./cpcec-gtk.deb
            

Ou simplement, avec un navigateur, employez la méthode décrite pour VSC, avec le clic droit sur le nom de fichier.

Maintenant qu’on a l’émulateur et l’éditeur, on va passer au compilateur !

Assembleur

iDSK

https://github.com/cpcsdk/idsk

De la même manière on télécharge l’archive puis on la dézippe.
Dans le répertoire dézippé, tapez :

            cmake .
            make
            mv iDSK idsk
            sudo mv idsk /usr/bin

Vous prendrez bien un éditeur hexa avec ça ?

Okteta

C’est un outil bien pratique pour explorer les fichiers binaires.
Ca va vous rappeler vos longues heures devant Discology !
Celui-ci est simple à installer : On peut utiliser l’installeur Ubuntu, ou un « sudo apt-get oketeka ».

Peaufinage

On va pour finir faire un peu de paramétrage sur VSC. C’est optionnel mais bien pratique.

Pour avoir la coloration syntaxique :
Cliquez sur la 5e icône à gauche dans la sidebar de l’appli.
Dans la ligne de recherche d’extension, tapez « Z80 ».
Cliquez ensuite sur le bouton « Installer » de l’extension Z80 Macro-Assembleur.

macro assembleur installation

Lorsque vous créez un projet dans VSC :
Ajoutez un répertoire « .vscode » dans le répertoire du projet.

Créez un fichier « tasks.json » qye vous mettrez dans le répertoire .vscode
Dans « tasks.json », coller le texte suivant :

            {
                // See https://go.microsoft.com/fwlink/?LinkId=733558
                // for the documentation about the tasks.json format
                "version": "2.0.0",
                "options": {
                    "env": {
                        "project_name": "CPC"
                    }
                },
                "tasks": [
                    {
                        "label": "build",
                        "command": "./build.sh",
                        "problemMatcher": "$errmatcher-rasm",
                        "group": {
                            "kind": "build",
                            "isDefault": true
                        }
                    },
                    {
                        "label": "run",
                        "command": "./run.sh",
                        "problemMatcher": []
                    }
                    ]
                }

Ainsi dans la barre de menu de VSC, rubrique « Terminal », on aura une option « build » qui lancera un script « build.sh » à la racine du projet.
On pourra donc mettre dans le script toutes les commandes servant à générer le programme final (Appel à un outil de conversion graphique automatique, scripts de génération de sources, compressions, etc.)

Voici un exemple de fichier build.sh :

            #!/bin/bash
            rasm ./src/main.asm -s -sl -sv -sq -sz
            rm ./dist/*
            idsk ./dist/demo.dsk -n
            idsk ./dist/demo.dsk -i ./test.bas -t 1 -f -c 0170
            ./src/patchdsk.php ./dist/demo.dsk
            cp ./dist/*.dsk /media/claire/CPC 2> /dev/null

Ce script compile avec rasm le fichier main.asm stocké dans le répertoire « /src » du projet.
iDSK crée une disquette vide dans le répertoire « dist », puis y place le fichier test.bas (généré par rasm).
Ensuite on lance un script PHP maison qui va patcher la disquette.
Et pour finir, on copie le dsk qu’on a généré dans la clef USB « CPC », accessible dans l’arborescence de la machine via /media/claire/CPC

Ainsi tout est automatisé : Un clic sur « Terminal → Exécuter la tâche de build » entrainera la création d’un fichier DSK qui sera placé directement sur la clef USB, pour un essai sur la machine réelle.

Et voilà ! Vous devriez disposer ainsi d’une machine pleinement fonctionnelle pour coder pour CPC.
Et pour une fraction du prix d’un vrai CPC ! Nous vous souhaitons de longues heures à vous arracher les cheveux ;-)

X

CONNEXION




Inscription