– Toutes les personnes compétentes en cross-dev sont invitées à enrichir cette page… mais vous avez le droit d'enrichir la partie CPC aussi !
Vous trouverez ici quelques informations sur les outils de développement auxquels sont destinés les divers listings d'exemples que vous pourrez télécharger au gré des articles du Quasar Net. Au fil du temps, cette page devrait évoluer en véritable didactitiel pour l'usage de ces outils.
— Rédigé pour le Quasar Net par OffseT.
Il s'agit là d'une version exclusivement disponible en ROM qui ne prend que quelques octets de RAM pour fonctionner. Il s'utilise couplé à la ROM Protext. Maxam 1.5 est certainement l'assembleur le plus abouti et le plus pratique à utiliser sur CPC. Il se pilote entièrement depuis le shell de Protext ou depuis le BASIC. Il est véritablement très efficace et permet de travailler sur du code très volumineux. Son principal défaut est sa relative lenteur à assembler le code.
Protext travaille avec des fichiers ASCII 8 bits tabulés.
Cette version de Maxam est disponible aussi bien en disquette qu'en ROM et repose sur un éditeur intégré au lieu de Protext. Développer avec Maxam 1.1x se révèle souvent lent et fastidieux (absence de shell, éditeur limité, système de menus lent). La version ROM ne prend que quelques octets de RAM alors que la version disquette demandera 16ko. L'assembleur est toutefois relogeable et peut tourner en bank.
Maxam 1.1x travaille avec des fichiers ASCII 7 bits non tabulés.
Il s'agit de l'assembleur historique des demomakers sur CPC, il est disponible uniquement en version disquette même s'il existe des ROM qui, en fait, le recopient en RAM. DAMS a besoin d'environ 12ko de RAM pour fonctionner et, tout comme Maxam 1.1x, est relogeable et peut tourner en bank. Son éditeur est très limité et plein de contraintes. En revanche, DAMS dispose d'un shell assez pratique et assemble le code à une vitesse sans pareille sur CPC. DAMS est très efficace pour travailler sur du code de petite taille mais le travail devient fastidieux quand le programme devient volumineux.
DAMS génère des fichiers binaires et non ASCII ; ils ne sont donc pas directement exploitable par d'autres programmes mais des convertisseurs vers ou depuis le format ASCII existent.
Rien à dire de spécial, les listings BASIC sont tous destinés au Locomotive BASIC présent en ROM sur tous les Amstrad CPC.
Les fichiers BASIC sont généralement dans format binaire dans lequel les instructions sont stockées sous forme de tokens. Toutefois, le BASIC est également capable de lire et d'écrire des fichiers ASCII.
Sur CPC, le Turbo Pascal n'est disponible qu'en version 3 sous CP/M. Il s'agit de la version standard du Turbo Pascal 3 que l'ont retrouve sur toutes les autres plateformes. Les programmes générés par le Turbo Pascal 3 sous CP/M ne sont pas compatibles Amsdos ; ils ne fonctionneront que sous CP/M.
Les listings sont au format ASCII 7 bits utilisé sous CP/M.
Il existe plusieurs outils de développement en C sur CPC, mais tous sous CP/M. Le plus puissant est sans doute le HiSoft C mais il nécessite un CPC avec 512ko de mémoire ce qui n'est pas commun. Les listings C destinés à être utilisés sur CPC sont plutôt destinés au Small C. Plus léger ce compilateur C tourne avec seulement 128ko de mémoire mais souffre de diverses limitations et ne gère pas tous les types standards du C. Il existe en outre des bibliothèques C compatibles avec le Small C qui permettent de compiler sous CP/M des exécutables Amsdos.
Les listings destinés au C sur CPC sont au format ASCII 7 bits du CP/M.
WinAPE est un émulateur CPC(+) pour PC sous Windows qui intègre un assembleur basé sur Maxam 1.5. Il est normalement compatible avec ce dernier et pourra gérer les mêmes sources.
(à rédiger)
— Rédigé pour le Quasar Net par CloudStrife.
— Enrichi par Pulkomandy.
Eh bien que dire si ce n'est pas grand-chose…
Il y a en effet sous Linux bien peu d'outils (notamment un manque flagrant d'émulateurs).
Enfin, pas grand-chose, tout est relatif.
Pour la compilation et l'assemblage de fichiers, pas de problème il y a deux principaux assembleurs (la scène spectrum utilise entre autre PASMO) :
Compilateur relativement basique (un compilateur quoi), très ancien (1978 !) et passé aux fils des ans par de nombreux développeurs, la dernière version (Novembre 2004) est probablement la 1.4 de Ramlaid disponible sur son site. Il offre l'énorme avantage d'avoir une syntaxe très proche de MAXAM 1.14 et de pouvoir directement produire des fichiers AMSDOS.
Compilateur plus complexe et plus récent, il permet notamment d'intégrer des scripts Lua permettant une génération automatique de code. À l'origine conçu pour le spectrum, il ne propose pas de fonctions pour gérer les fichiers AMSDOS. Il dispose cependant de la gestion des opcodes non documentés, et même d'opcodes qui n'existent pas (du genre LD HL,DE qui est compilé comme LD H,D:LD L,E). Il permet aussi de séparer un projet en modules indépendants, de faire de la compilation conditionelle et beaucoup d'autres choses bien sympathiques. Par contre, il y a aussi quelques bugs que nous vous laissons la surprise de découvrir.
Gros point faible du crossdev sous Linux, l'absence d'émulateur de qualité, notamment concernant les IHMs… On peut cependant citer :
Émulateur écrit C par Kevin Thacker pour Windows, il a été porté sous Linux par Andreas Micklei. Il possède quelques capacités d'émulation Amstrad Plus. Malheureusement le développement de la version principale sous Windows est arrêté depuis 2004. La personne le portant sous Linux a quant à lui repris son activité récemment. L'interface de cet émulateur est basique, mais efficace. Elle permet de configurer les principales options, d'insérer des disquettes et de changer les ROMs.
Émulateur écrit C par Ulrich Doewich d'abord pour DOS puis Windows, il a été en lors du passage à la version 4.0 placé en OpenSource et une version Linux sortie, malheureusement il perdit lors de ce changement de version son interface graphique (bien que le code intègre les capacités de changement de disquette, de chargement/enregistrement de snapshot etc. Seul un chargement d'une disquette à l'exécution grâce à la ligne de commande est possible) et le développement s'arrêta en 2004.
Basé sur le code de la dernière version de Caprice 32 (la 4.2.0), Ramlaid fit une conversion en langage C++ de l'émulateur. Krusty récupéra le code et en fit une version compilable sous Linux, mais il manquait toujours une interface graphique digne de ce nom. Depuis 2008, Krusty, PulkoMandy et CloudStrife s'occupent, à travers le projet cpcsdk, de son développement luttant contre bug et tempêtes (Le petit blond à lunette dit que je me jette des fleurs, et alors ? j'ai le droit non ?… Non ?… Ah bon !). Bref, ça commence à prendre forme. L'interface graphique permet déjà d'insérer et de retirer des disquettes. De nombreux outils d'assistance à la programmation sont prévues mais pas toutes fonctionnelles. Citons la gestion des snapshots, l'exploration de la mémoire et le désassemblage du code.
L'objectif de cet émulateur est d'être le plus proche possible du comportement d'un vrai CPC. Mais le chemin est encore long.
(à completer)
cpcemu est développé par Marco Vieth. C'est l'un des premiers émulateurs CPC. Il est très rapide, mais pas très compatible. Il pourra toujours servir à ceux qui veulent tester un programme simple en BASIC.
Le but du projet cpcsdk est de rassembler tous les outils pour le cross-dev cpc sous Linux. En effet la plupart de ces outils ont eu une existence obscure, avec des patches à récupérer un peu partout pour obtenir un ensemble plus ou moins fonctionnel. Afin de gagner du temps et de faire avancer les choses, cpcsdk regroupe tout ce bazar pour essayer d'en faire quelque chose d'utilisable. Vous trouverez de quoi convertir vos images, gérer des fichiers dsk, des snapshots, utiliser une cpcBooster, et bien d'autres choses encore.
(à rédiger)
Pasmo a été porté pour MorphOS. Il offre une syntaxe très proche de celle de Maxam ainsi que de nombreuses améliorations. Couplé à ACE (auquel il peut totalement s'intégrer via l'interface AREXX), il se révèle être un puissant outil de développement.
Historiquement il existe de nombreux émulateurs CPC sur Amiga, mais ceux-ci sont assez anciens et n'offrent pas la qualité requise pour faire du cross-dev confortablement. Fort heureusement, si vous êtes l'heureux possesseur d'une machine MorphOS, vous pouvez désormais compter sur ACE.
ACE est un émulateur moderne à la qualité d'émulation généralement supérieure aux émulateurs CPC/CPC+ sur PC. Il dispose d'une interface graphique simple et intuitive ainsi que de tous les outils internes nécessaires à la manipulation du CPC émulé. Il est également totalement scriptable ce qui permet de l'utiliser pour faire à peu près tout.
Pour plus d'informations rendez-vous sur http://ace.cpcscene.net.
En son temps, Kevin Thacker avait développé une série d'outils dédiés à la manipulations des DSK sur Amiga. Malheureusement ceux-ci fonctionnent très mal sur les Amiga de nouvelle génération, mais si vous avez toujours un vieil Amiga 500 et 1200 qui traine, ils peuvent toujours dépanner.