Je suis un développeur logiciel avec beaucoup d'expérience en C et en Python.
J'ai fait l'aquisition il y a quelques années d'un CPC 6128, et je souhaite m'en servir pour apprendre à programmer en assembleur.
Mon objectif est de me servir du CPC 6128 et de l'assembleur, de la même manière dont on se sert aujourd'hui du Pico-8 et du Lua : pour apprendre à programmer en assembleur sur une plateforme « tout en un » (graphismes, son, etc), et faire des petites expériences, ou même des petits jeux.
Je compte développer autant sur la machine réelle, que sur émulateur (plus pratique). Au passage, mon lecteur de disquettes est HS, et je ne pense pas que ce soit un simple problème de courroie à changer. Donc si je charge mes productions sur le CPC, ça passera par le canal audio.
Je ne sais pas ce que valent ces livres, je ne les ai pas encore lus. Si vous avez un avis, ou des recommendations d'autres livres que vous avez lus, je serais ravi de les connaître.
J'ai vu qu'il y avait un grand nombre de tutos sur le site cpcrulez.fr ; mais ça part dans tous les sens, et devant la grande quantité d'informations, j'ai besoin que l'on me guide vers un tutoriel à suivre pas-à-pas.
Dans l'idéal, je recherce un tuto pour apprendre à assembler un « Hello world » soit directement sur Amstrad CPC, soit sur Linux. Et j'insiste sur le fait que je ne désire pas du tout compiler du C, mais bien écrire de l'assembleur !
N'hésitez pas à me poser toutes les questions que vous souhaitez pour que je puisse clarifier mon projet !
Bon à savoir. J'irais voir ça. Ironiquement, je suis souvent resté loin des livres Wikibooks, parce qu'ils me laissaient l'impression d'être insipides et mal organisés (et surtout, pas terminés !). J'irais lire ça en priorité.
marcel a écrit :
Mais pour programmer sur CPC, il faut de la doc CPC, cpcrulez fourmille de tout, cpcwiki aussi c'est un peu à toi de savoir ce que tu comptes faire.
Pour l'instant, c'est simple. Comme vous l'avez déjà noté dans votre réponse : je veux faire un Hello World. Si je veux aller quelque part, il faut y aller étape par étape. Sinon, je ne vais tout simplement pas savoir quoi, ni comment m'organiser, et je vais perdre la motivation.
Ma liste est, pour l'instant :
Afficher Hello World
Afficher un carré rouge
Faire bouger le carré rouge avec les touches directionnelles
Merci. Mais je ne possède absolument aucun matériel en dehors d'un CPC 6128 nu, dont le lecteur disquettes ne fonctionne pas. J'ai juste un câble Jack mâle-mâle 3,5 mm.
Merci @marcel et @hERMOL pour vos indication et votre documentation !
Juste à titre indicatif, voici la liste des livres à propos de la programmation du CPC en assembleur que j'ai pu trouver numérisés sur la Internet Archive. Si jamais vous avez un de ces livres à me recommander, n'hésitez pas !
Je mets la liste ici, si jamais quelqu'un se pose la même question que moi à l'avenir :
Jette un oeil aux sommaires des bouquins, c'est hyper superficiel. Au mieux t'as une doc du Z80 et pas d'info sur le CPC
Le seul qui tire un peu son épingle du lot est celui sur les graphismes avec une explication des adresses (maladroite en décimal, en hexa on pige bien mieux #C000, #C800, #D000, ...) et le décodage des couleurs
Je reconnais que c'est juste. Les livres parlent beaucoup du Z80 d'un aspect assez lointain, et assez peu de programmation en assembleur, qui plus est pour le CPC. Je suis juste un peu déçu que la documentation soit aussi éparse.
Ce que je trouverai intéressant, mais peut-être est-ce à moi de le rédiger , ça serait un grand document qui prend son lecteur par la main pour apprendre à réaliser un petit jeu très simple (un snake, par exemple) et qui passerait par tous les aspects : programmation asm ; affichage de sprites à l'écran ; musique rudimentaires et effets sonores ; lecture du joystick et des touches directionnelles ; réalisation d'une cassette/disquette/cartouche.
Ou bien, une succession de programmes, les plus courts possibles, pour faire des tâches simples. Comme les exemples de la librairie raylib : https://www.raylib.com/examples.html
En attendant, je vais lire vos recommendations @marcel !
Il est difficile pour celui qui connait d'écrire un manuel d'apprentissage
Que l'on me comprenne, mais je trouve cette phrase un peu vaporeuse ?
Même celui qui sait faire des démos pour Amstrad ne saurait pas rédiger un tutoriel pour faire un snake ? Ça me laisse l'impression que la programmation en assembleur est insaisissable.
Voici un exemple très concret de ce que j'aimerais savoir réaliser sur Amstrad CPC en assembleur (c'est un jeu réalisé par un ami) :
Je suis d'ailleurs tombé sur une vidéo de Monsieur Édouard Bergé, où il réalise une intro en deux heures. J'ai survolé la vidéo, mais je pense que je vais investir une petite journée pour la regarder attentivement, et prendre des notes.
marcel a écrit :
Si de ton côté tu as quelques idées sur l'avenir, on pourrait à minima te trouver des articles, mieux, peut-être t'en faire
Merci infiniment pour votre soutien, @marcel, c'est très touchant. Je vais d'abord faire au mieux avec ce que j'ai, et j'aviserai par la suite. Je pense que j'ai accumulé suffisament d'informations. Il ne me reste plus qu'à m'y mettre !
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
Il est difficile pour celui qui connait d'écrire un manuel d'apprentissage
Même celui qui sait faire des démos pour Amstrad ne saurait pas rédiger un tutoriel pour faire un snake ? Ça me laisse l'impression que la programmation en assembleur est insaisissable.
Ce que je voulais dire, c'est que les gens qui veulent apprendre à programmer n'ont pas les mêmes buts. On pourrait écrire 200 pages de code pas à pas sur un projet qui ne t'intéresse pas!
Certains vont vouloir faire des scrollings parce que ça a été à la mode, d'autres vont vouloir faire des jeux (quel genre?)
Voilà, déjà avec un snake, on avance!
Ça demande au minimum une gestion du clavier, un peu de logique, quelques routines simples pour l'affichage!
Et j'ai envie à nouveau de te rediriger vers http://quasar.cpcscene.net/doku.php pour le clavier (voir PPI de mémoire), l'objectif serait de faire une boucle qui récupère les lignes et de quoi en faire quelque chose d'exploitable.
J'avais pas prévu de streamer à nouveau du code en direct
Ce qui est toujours compliqué quand on commence le langage machine, c'est de faire le lien entre les instructions qui sont toutes très élémentaires, et un projet qui par essence, l'est forcément moins. Des notions de programmation (même du Basic) sont nécessaires pour ne pas tout découvrir d'un coup.
Le bouquin "Mieux programmer en assembleur" de Thomas Lanchand Robert est pour cela bien foutu je trouve, car il présente quelques routines avec la marche suivie par l'auteur. La plupart des autres titres, ne sont malheureusement pas aussi didactiques.
Pour moi, le plus simple est encore de commencer par quelques routines graphiques. Ca permet d'utiliser les registre, les boucles et les conditions, tout en ayant un résultat "visuel". C'est ce que je vais faire par exemple pour le 6502 (processeur que je ne connais absolument pas), où j'ai besoin d'une petite routine qui efface une portion de l'écran. C'est trivial, mais c'est un début . Ca va m'obliger à savoir comment la mémoire vidéo est gérée, où implanter la routine, et comment la créer ( = utilisation d'un assembleur).
Après cette étape, regarder des sources ou bouts de code d'autres utilisateurs est intéressant.
Inscription : 05 Avr 2012, 08:02 Message(s) : 134 Localisation : Sur terre, mais souvent dans les nuages !
Salut,
Pour les CPC il y a les Classeur WEKA, tout est dedans, mais c'est très gros ! Il se trouve sur le net. Je sais pas ou j'ai mis les miens, faudrait que je les chercher dans mon bazar !
Pour les CPC il y a les Classeur WEKA, tout est dedans, mais c'est très gros ! Il se trouve sur le net. Je sais pas ou j'ai mis les miens, faudrait que je les chercher dans mon bazar !
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum