CPC Rulez
https://cpcrulez.fr/forum/

Débutant souhaite programmer en assembleur pour le CPC 6128
https://cpcrulez.fr/forum/viewtopic.php?f=4&t=7013
Page 1 sur 2

Auteur :  malespiaut_ [ 12 Avr 2024, 23:32 ]
Sujet du message :  Débutant souhaite programmer en assembleur pour le CPC 6128

Bonjour à tous,

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 possède déjà des livres sur l'assembleur Z80:

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 ! :D

N'hésitez pas à me poser toutes les questions que vous souhaitez pour que je puisse clarifier mon projet !

Merci à tous pour votre temps.

Auteur :  marcel [ 13 Avr 2024, 09:02 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

La plupart des livres sur le Z80 sont insipides et mal organisés. J'ai tenté de réorganiser un peu la connaissance ici (et de faire court) https://fr.wikibooks.org/wiki/Programma ... mbleur_Z80

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 un hello world, c'est de la programmation système de base, il te faut une documentation sur les vecteurs systèmes!!! => http://www.cpcalive.com/docs/amstrad_cpc_vectors.html

Un émulateur pour dev sous Linux, http://www.roudoudou.com/ACE-DL/

Un assembleur pour ton CPC (faudra une romboard) http://orgams.wikidot.com/start

Plus qu'à trouver ce que tu souhaites faire après ton premier hello world :)

Auteur :  hERMOL [ 13 Avr 2024, 10:27 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

Salut malespiaut_,

Des initiations orientées débutant , tu pourras en trouver sur ces pages :

https://cpcrulez.fr/coding_ASTR37_asm.htm
https://cpcrulez.fr/coding_demoniak-menu.htm
https://cpcrulez.fr/coding-micromag12-a ... __MMAG.htm

Initiation à l'assembleur Micro mag: https://cpcrulez.fr/coding_micromag-menu.htm
Initiation à l'assembleur Micro News : https://cpcrulez.fr/coding_articles-micro_news-menu.htm
Initiation à l'assembleur A100% : https://cpcrulez.fr/coding_menu-asm1.htm
Les pages pédagogique d'Hebdogiciel : https://cpcrulez.fr/coding_hebdogiciel-menu.htm

Auteur :  malespiaut_ [ 13 Avr 2024, 10:47 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

Bonjour à tous !

Merci infiniment pour ces réponses !

marcel a écrit :
La plupart des livres sur le Z80 sont insipides et mal organisés. J'ai tenté de réorganiser un peu la connaissance ici (et de faire court) https://fr.wikibooks.org/wiki/Programma ... mbleur_Z80


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 :P (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 :

  1. Afficher Hello World
  2. Afficher un carré rouge
  3. Faire bouger le carré rouge avec les touches directionnelles

Je pense que c'est déjà bien assez.

marcel a écrit :
Un assembleur pour ton CPC (faudra une romboard) http://orgams.wikidot.com/start


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 !

Auteur :  stephbb75 [ 13 Avr 2024, 19:58 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

malespiaut_ a écrit :
... Au passage, mon lecteur de disquettes est HS, et je ne pense pas que ce soit un simple problème de courroie à changer.

Tu peut toujour la changer, pour 2€ cela ne te ruineras pas :mdr:
Et il refonctionneras peut être !

malespiaut_ a écrit :
...Donc si je charge mes productions sur le CPC, ça passera par le canal audio.

Pour de petit programme cela vas, mais si tu commence a jouer avec les fichiers se seras plus galère.

Au pire tu peut monter un lecteur 3p1/2...

ou investir dans les extension pour utiliser une caret SD ou le Wifi par exemple.

Pour l’assembleur tu a déjà eu des réponses.
Mais en fouillent sur le net tu trouveras pas mal de code pour le CPC

Auteur :  malespiaut_ [ 15 Avr 2024, 11:00 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

Bonjour,

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 :

Livres en français :


Livres en anglais :


On remarquera que les années 1985 et 1986 étaient l'âge d'or de la programmation en assembleur pour l'Amstrad CPC ! :-P

Il existe également une série de tutoriels vidéos, beaucoup plus récente (2018-2023) sur YouTube : Amstrad CPC - Z80 Assembly programming, par ChibiAkumas.

Ce monsieur dispose également d'une version écrite de son tutoriel : Lesson H1 - Hello World on the CPC.

Auteur :  marcel [ 15 Avr 2024, 13:10 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

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

Tu as quelques exemples/infos bien plus concises sur http://quasar.cpcscene.net/doku.php par exemple

Et relire les rubriques bidouilles d'Amstrad 100% sur abandonware magazine est pas mal aussi :)

Auteur :  malespiaut_ [ 15 Avr 2024, 13:34 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

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 :-P, ç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 ! :-)

Auteur :  marcel [ 15 Avr 2024, 13:51 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

malespiaut_ a écrit :
Ce que je trouverai intéressant, mais peut-être est-ce à moi de le rédiger :-P


Il est difficile pour celui qui connait d'écrire un manuel d'apprentissage

Par exemple, tu nous parles d'un hello world, mais ensuite? Quelle direction prendre?

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 :eng:

++

Auteur :  malespiaut_ [ 16 Avr 2024, 10:48 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

marcel a écrit :
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 ? :sweatingbullets:

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. :D

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) :

Image

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 :eng:


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 ! :P

Auteur :  marcel [ 16 Avr 2024, 12:34 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

malespiaut_ a écrit :
marcel a écrit :
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. :D


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 :P

++

Auteur :  markerror [ 16 Avr 2024, 15:17 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

Bonjour,

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.

Auteur :  stephbb75 [ 16 Avr 2024, 18:36 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

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 !

Auteur :  malespiaut_ [ 17 Avr 2024, 09:23 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

stephbb75 a écrit :
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 !


Bonjour @stephbb75,

Merci pour l'information. Je suppose que vous faites référence à ce document ? https://cpcrulez.fr/codingBOOK_weka_010 ... tieres.htm

Auteur :  breiztiger [ 17 Avr 2024, 18:00 ]
Sujet du message :  Re: Débutant souhaite programmer en assembleur pour le CPC 6

https://acpc.me/#ACME/DOCS_TECHNIQUES/WEKA

Page 1 sur 2 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/