- 37
- 17 844
Yreggor
เข้าร่วมเมื่อ 18 ธ.ค. 2006
Apprendre et programmer des jeux en Assembleur Z80 sur Amstrad CPC - Episode #4
Bienvenue dans cette série de vidéos destinée à vous apprendre l'Assembleur Z80 sur Amstrad CPC et à développer des jeux dans ce langage.
Episodes précédents :
Episode #1 : th-cam.com/video/5CLGTqo_-y0/w-d-xo.html
Episode #2 : th-cam.com/video/Z_YQUblUDw8/w-d-xo.html
Episode #3 : th-cam.com/video/8u-SzCL0bM0/w-d-xo.html
Liste des vecteurs système : www.cpc-power.com/cpcarchives/index.php?page=articles&num=150#vecteurs
Manuel de référence du CPC 6128 : archive.org/details/Amstrad_CPC6128_Manuel_de_lutilisateur_1985_AMSOFT_FR
Lien pour télécharger l'émulateur Caprice Forever : www.cpc-power.com/cpcarchives/index.php?page=articles&num=445
Générique vidéo :
Titre: Reset
Auteur: Jaunter
Source: jaunter.bandcamp.com
Licence: creativecommons.org/licenses/by/3.0/
Téléchargement: www.auboutdufil.com
Episodes précédents :
Episode #1 : th-cam.com/video/5CLGTqo_-y0/w-d-xo.html
Episode #2 : th-cam.com/video/Z_YQUblUDw8/w-d-xo.html
Episode #3 : th-cam.com/video/8u-SzCL0bM0/w-d-xo.html
Liste des vecteurs système : www.cpc-power.com/cpcarchives/index.php?page=articles&num=150#vecteurs
Manuel de référence du CPC 6128 : archive.org/details/Amstrad_CPC6128_Manuel_de_lutilisateur_1985_AMSOFT_FR
Lien pour télécharger l'émulateur Caprice Forever : www.cpc-power.com/cpcarchives/index.php?page=articles&num=445
Générique vidéo :
Titre: Reset
Auteur: Jaunter
Source: jaunter.bandcamp.com
Licence: creativecommons.org/licenses/by/3.0/
Téléchargement: www.auboutdufil.com
มุมมอง: 296
วีดีโอ
Apprendre et programmer des jeux en Assembleur Z80 sur Amstrad CPC - Episode #3
มุมมอง 37121 วันที่ผ่านมา
Bienvenue dans cette série de vidéos destinée à vous apprendre l'Assembleur Z80 sur Amstrad CPC et à développer des jeux dans ce langage. Episodes précédents : Episode #1 : th-cam.com/video/5CLGTqo_-y0/w-d-xo.html Episode #2 : th-cam.com/video/Z_YQUblUDw8/w-d-xo.html Liste des vecteurs système : www.cpc-power.com/cpcarchives/index.php?page=articles&num=150#vecteurs Manuel de référence du CPC 61...
Apprendre et programmer des jeux en Assembleur Z80 sur Amstrad CPC - Episode #2
มุมมอง 667หลายเดือนก่อน
Bienvenue dans cette série de vidéos destinée à vous apprendre l'Assembleur Z80 sur Amstrad CPC et à développer des jeux dans ce langage. Episode #1 : th-cam.com/video/5CLGTqo_-y0/w-d-xo.html Liste des vecteurs système : www.cpc-power.com/cpcarchives/index.php?page=articles&num=150#vecteurs Manuel de référence du CPC 6128 : archive.org/details/Amstrad_CPC6128_Manuel_de_lutilisateur_1985_AMSOFT_...
Apprendre et programmer des jeux en Assembleur Z80 sur Amstrad CPC - Episode #1
มุมมอง 1.4Kหลายเดือนก่อน
Bienvenue dans cette série de vidéos destinée à vous apprendre l'Assembleur Z80 sur Amstrad CPC et à développer des jeux dans ce langage. Lien pour télécharger l'émulateur Caprice Forever : www.cpc-power.com/cpcarchives/index.php?page=articles&num=445 Liste des vecteurs système : www.cpc-power.com/cpcarchives/index.php?page=articles&num=150#vecteurs Générique vidéo : Titre: Reset Auteur: Jaunte...
AC2024 - 13/04/2024
มุมมอง 1668 หลายเดือนก่อน
Un petit retour de l'AC 2024, convention de retro gaming de l'association RGC journée du samedi 13/04/2024 Vidéo : Grégory BOURGON Montage vidéo : Grégory BOURGON Musique : Starcade Auteur: Blue Navi Source: soundcloud.com/blue-navi Licence: creativecommons.org/licenses/by-sa/3.0/deed.fr Téléchargement: www.auboutdufil.com
Amelie McCandless - The Stranger - Live 17 06 2022
มุมมอง 332 ปีที่แล้ว
Amelie McCandless - The Stranger - Live 17 06 2022
Emmet Brown's Eperiment - Killing in the name of (RATM cover)
มุมมอง 142 ปีที่แล้ว
Emmet Brown's Eperiment - Killing in the name of (RATM cover)
The Hunt for the Dragon
มุมมอง 272 ปีที่แล้ว
Les aventures d'un mage face à une menace terrifiante...
You Raise Me Up (Josh Groban Version - Unofficial video by Grégory BOURGON)
มุมมอง 283 ปีที่แล้ว
Vidéo spécialement réalisée pour une soirée en hommage à l'association antenne vitryate de FRANCE ALZHEIMER localisée à Vitry-le-Francois, France. Merci au site WWW.PEXELS.COM pour les vidéos, ainsi qu'à ceux qui créent le contenu cottonbro, kampus production, pavel danilyuk, olia danilevich, Pressmaster, Anthony Shkraba, Gustavo Fring Video specially produced for an evening in tribute to the v...
Effet parallax à partir d'une image 2D - DaVinci Resolve 17.4
มุมมอง 623 ปีที่แล้ว
Effet parallax à partir d'une image 2D - DaVinci Resolve 17.4 Dessin : Lolita fredelolitaroger
DaVinci Resolve - séquence animée à partir d'une image 2D avec Fusion
มุมมอง 843 ปีที่แล้ว
DaVinci Resolve - séquence animée à partir d'une image 2D avec Fusion Dessin : Lolita fredelolitaroger
Misty Mountains (Cold) - Vocal Cover by Greg
มุมมอง 1243 ปีที่แล้ว
Magnifique chanson du film "Le Hobbit - Un voyage inattendu". J'avais pris des cours de chant il y a quelques années et nous avions repris ce thème à plusieurs avec des harmonies vocales. J'avais adoré le résultat. Malheureusement, je n'ai pas pu retrouver les partitions de l'époque. Je voulais tout de même faire cette reprise en exploitant le registre grave de ma voix.
Demo 3D - Da Vinci Resolve 17.3 free edition
มุมมอง 233 ปีที่แล้ว
On continue d'apprendre à utiliser le logiciel de montage vidéo DaVinci Resolve 17.3 version gratuite. Petit test de création d'une scène 3D avec une sphère sur laquelle on applique une texture représentant un sol aride. On y ajoutera ensuite un fond étoilé et pour agrémenter, un mouvement de rotation sur notre sphère.
SING (Travis) - Cover by Greg
มุมมอง 1383 ปีที่แล้ว
Guitar, bass, vocals, drums programming by GREG Video capture hardware : Lumix G80 Video editing software : DaVinci Resolve 17 (free version) Cover de la chanson "Sing" du groupe TRAVIS. C'est aussi ma première vidéo réalisée avec le logiciel de montage vidéo DaVinci Resolve 17 version gratuite.
Recalbox 7.0 - EEPC 1015 PEM (Intel ATOM N550 double coeur 1,5 GHz, 2 Go RAM, 250 Go Disque Dur)
มุมมอง 8244 ปีที่แล้ว
Recalbox 7.0 - EEPC 1015 PEM (Intel ATOM N550 double coeur 1,5 GHz, 2 Go RAM, 250 Go Disque Dur)
Concert des THF au Sacobri - 19/09/2020 - Knocking on Heaven's Door feat. Ludo Desa
มุมมอง 494 ปีที่แล้ว
Concert des THF au Sacobri - 19/09/2020 - Knocking on Heaven's Door feat. Ludo Desa
"Whiskey in the Jar" par HARRY COVER - L'Orange Bleue 20/09/2019
มุมมอง 305 ปีที่แล้ว
"Whiskey in the Jar" par HARRY COVER - L'Orange Bleue 20/09/2019
J.-B.LOEILLET - Sonate op.3 N°4 - Concert Collégiale de Vitry le François 22/09/2019
มุมมอง 415 ปีที่แล้ว
J.-B.LOEILLET - Sonate op.3 N°4 - Concert Collégiale de Vitry le François 22/09/2019
"Messe pour les couvents" de F. COUPERIN - Concert Collégiale de Vitry le François 22/09/2019
มุมมอง 405 ปีที่แล้ว
"Messe pour les couvents" de F. COUPERIN - Concert Collégiale de Vitry le François 22/09/2019
"Hey Jude" par THE BEATBOX - Chateau de Goncourt le 07/09/2019
มุมมอง 2195 ปีที่แล้ว
"Hey Jude" par THE BEATBOX - Chateau de Goncourt le 07/09/2019
"Imagine" par THE BEATBOX - Chateau de Goncourt le 07/09/2019
มุมมอง 385 ปีที่แล้ว
"Imagine" par THE BEATBOX - Chateau de Goncourt le 07/09/2019
The Imperial March - Ciné Concert Star Wars - L'Empire Contre attaque - Zénith de Nancy 15/02/2019
มุมมอง 9605 ปีที่แล้ว
The Imperial March - Ciné Concert Star Wars - L'Empire Contre attaque - Zénith de Nancy 15/02/2019
Introduction du Ciné Concert Star Wars - L'Empire Contre attaque - Zénith de Nancy 15/02/2019
มุมมอง 11K5 ปีที่แล้ว
Introduction du Ciné Concert Star Wars - L'Empire Contre attaque - Zénith de Nancy 15/02/2019
Merci encore pour cette vidéo. Une petite question en passant: je ne comprends pas pourquoi le programme peut fonctionner à partir de l'adresse &1000 mais que les symbols redéfinis soient en vrac. En effet le code qu'on compile se retrouve bien en RAM à partir de &1000 (si on utilises org &1000) et il est bien appelable. D'après ce que tu dis, c'est un conflit avec ROM qui se trouve avant &3FFF mais dans ce cas pourquoi le programme peut lui se trouver sans problème en &1000?
Salut !! Super , toutes les videos sont tres claires et permettent d avancer a bon rytme. Rappel moi lobjectif, on va faire un petit jeu en mode texte a la fin c est bien ça ? SI c est le cas c est genial. Et vous devinez la suite, apres mode texte mode graphic avec des tuiles des sprites etc
Merci beaucoup pour ton commentaire ! Oui, l'objectif de cette série est bien de faire à la fin un petit jeu en mode caractère. Pour l'instant, ca restait assez général mais on va bientôt aborder des thèmes plus précis, déplacement d'un personnage, gestion des collisions... Mine de rien, avec ces quatre première vidéos, on peut déja travailler le décor et l'interface d'un jeu : à l'aide des boucles, du placement des caractères à l'écran et l'affichage des chaines de caractères, on peut déja s'amuser à tracer un contour qui délimite l'écran de jeu ou bien concevoir l'interface. La suite avec le passage en mode graphique, la gestion des sprites, oui, j'y pense déja. Si vous voulez déja apprendre cet aspect, vous avez l'excellent site d' @edouardberge qui est une mine d'or.
Des petits exemples fonctionnels, c'est ça qu'il faut! Bravo!
Exact, pour les débutants, ca leur permet d'avoir des petites victoires et de valider tout de suite ce qu'ils apprennent.
C'est quand même bien pratique les vecteurs, quoiqu'en disent les puristes.
Ca depends lesquels, essaye de tracer une ligne en asm, c'est pas plus rapide qu'en basic...
C'est normal que ça ne soit pas plus rapide vu que le basic utilise le même vecteur il faut comparer sur un traitement un peu plus complexe qui utilise plusieurs fonctions graphiques, boucles etc. et là même en C (avec une lib qui utilise les même vecteurs) c'est déjà un peu plus rapide (surtout quand on utilise pas de virgule flottante d'ailleurs)... Après c'est sur qu'on doit pouvoir faire des routines de ligne plus rapide en pur asm
@@CopperFrance je dis pas qu'on peut pas faire plus rapide, on fait beaucoup plus rapide en asm, d'où l'intérêt de couper le système et de faire ses propres routines surtout celles qui touchent la partie graphique du cpc !
C'est sur mais on peut aussi utiliser le système pour tout ce qui n'est pas critique et ne refaire que ce qui le nécessite... C'est d'ailleurs pareil pour le choix C + asm qui reste un bon compromis
@@cr5331 Évidement que pour tout ce qui touche aux graphismes, il vaut mieux se créer ses propres routines. Mais même dans The Shadows of Sergoth j'ai utilisé des vecteurs pour les couleurs et le clavier. Par contre TSOS2, que j'ai abandonné, était en overscan 32Ko à partir de &8000. Donc là il n'y avait plus de système du tout, et j'étais obligé de passer par les ports et le Gate-Array ou de faire appel aux routines ROM pour la lecture/écriture par secteurs disques, entre autres.
Le LD C,0 (en plus du LD B,0) est absolument nécessaire car tu ne sais pas ce qu'il peut valoir avant ton appel dans un cas 'normal' d'utilisation (pas un test rapide après reboot).
Le plus simple pour pas avoir de problèmes est encore de toujours définir BC LD BC,0 ou LD BC,21*256+21 ; b=21,c=21
Oui, merci pour cette confirmation.
Salut, petite inexactitude , la commande paper ne change pas la couleur du fond, mais change la couleur du fond de ton écriture, la commande qui change la couleur du fond de l'écran est ink 0,X ( et peut prendre 1 des 27 couleurs dispo, et aussi clignoter comme les autres ink) paper sert à "surligner" ton texte 10 MODE 1 20 PEN 2 : PAPER 3 : PRINT"Hello world !!" 30 PEN 1 : PAPER 2 : LOCATE 15,5 : PRINT"Hello world !!" 40 PEN 3 : PAPER 1 : PRINT"Hello world !!" 50 PEN 1 : PAPER 0 le fait que tu puisses changer la couleur du fond, c'est parce que tu fais un CLS après ton paper, en gros tu demandes de surligner, et tu effaces l'écran, si tu fais un paper 0, tu reviendras à la config de base de la couleur de "fond" BB96: Determine le stylo utilise pour " le fond des caracteres " texte (l'instruction PAPER du Basic)
Merci pour cette rectification. Je reviendrai sur ce point en début de la prochaine vidéo.
Excellent
Toujours aussi intéressant et bien expliqué, bravo.
Merci à toi 👍
"vous pouvez enlever les scanlines" => Mais ouiiiiiiiiii, pas de scanlines sur le CPC original ^_^ MERCI
merci . Je suis preneur des explications pour percer le mystère... au prochain épisode
Pour le deuxième problème, il s'agit peut-être de la gestion du SYMBOL AFTER du BASIC. Que remonte le vecteur : BBAE TXT_GET_M_TABLE ? A doit contenir la valeur du Symbol After. Si ce n'est pas 240, ca peut poser problème. Si c'est le cas, un appel à BBAB TXT_SET_M_TABLE pour fixer la zone mémoire utilisée par les surcharges des symboles devrait améliorer le point. Sinon, je crois que le Symbol After est fixé à 250 (de mémoire), est-ce que 255 au lieu de 240 corrige le problème ?
Par défault c'est SYMBOL AFTER 240. Utiliser BBAB TXT_SET_M_TABLE serait nécessaire par contre pour définir des caractères avant 240. Et sera indispensable si on fait un RUN d'un .BIN qui semble réinitialiser la table
@@CopperFrance Cela voudrait donc dire que le vecteur BBA8 TXT_SET_MATRIX n'utilise pas du tout la gestion BASIC et permet de mettre un pointeur pour chaque caractère ? Etrange mais possible vu le commentaire sur cpc-power. Je pensais qu'il n'y avait que 2 tables : la table en ROM et la table de redéfinition. Et donc dans ce cas oui : attention car BBA5 est en ROM et pense que les caractères redéfinis sont bien plus proche de la fin de mémoire BASIC, donc adresse de redéfinition > &4000 obligatoire. Ou bien de récupérer l'adresse officielle du caractère 240 via BBAE TXT_GET_M_TABLE pour mettre le caractère 'au bon endroit' directement et ne pas changer son emplacement pour le BASIC.
@@jolletxavier7036 Si il l'utilise mais par contre quand on appelle BBA8 TXT_SET_MATRIX on passe une adresse en RAM pour les données. Sauf qu'au moment ou la routine en ROM a besoin des données si celles-ci sont situées avant l'adresse &4000 il va les lire en ROM au lieu de les lire en RAM c'est pour ça qu'on obtient un caractère bizarre et que ça fonctionne quand on déplace le programme en &4000 (même si déplacer les données du caractère après &4000 serait suffisant).
@@jolletxavier7036Si il l'utilise le problème étant que l'on fourni une adresse au vecteur BBA8 TXT_SET_MATRIX et il doit recopier les données au bon endroit seulement au moment ou cette copie s'effectue la ROM basse est connectée donc si l'on fourni une adresse < &4000 il recopie à partir de la ROM au lieu de la RAM. Ca explique pourquoi on obtient un caractère bizarre si l'adresse est < &4000 et pourquoi cela fonctionne si on fourni une adresse >= &4000. En théorie on doit aussi pouvoir recopier directement les données en utilisant un LDIR vers l'adresse fournie par BBA5 TXT GET MATRIX
@@jolletxavier7036 En fait il faut que la table et les données à mettre dans la table soient situés à partir de &4000... Ici il utilise la table du BASIC dont pas de souci pour l'adresse de celle-ci mais par contre pour les données ce n'était pas le cas sans mettre le ORG à &4000.
Les boucles en assembleur, ça m'a amusé un sacré bout de temps, encore bravo, explications très claires.
Ah, merci beaucoup :-) !
Petite remarque, un nombre en 16 bits peut aller de 0 à 65535. Mais autrement, chouette vidéo :)
Voilà ^^
Salut haaaa enfin hahaha Super le cours. J ai demand´´e a un prof de ASM ici a Barcelone, il me dit que les variables peuvent uniquement aller dans A et pas dans les autres regitres, c est structurel
on peut tricher, inverser les étiquettes ld hl,(ypos) ret ypos db 12 xpos db 20 ainsi, h=20 et l=12 ;)
@LuisDiazuu7xg : super, je me doutais bien. Merci pour cette confirmation.
@@cr5331 : Rhooo oui, joli l'astuce pour contourner cette limitation 🙂.
Effectivement il n'y a pas d'instruction LD H,(nn) ni LD L,(nn) par contre il y a une instruction LD HL,(nn)... Il doit donc être possible d'utiliser un LD HL,(YOBJET) mais il faudrait inverser l'ordre des DB (mettre YOBJET en premier)... Pour ton deuxième problème c'est sans doute une histoire de ROM basse commutée et donc si on met les données avant l'adresse &4000 c'est cette ROM qui doit être lue au lieu des données en RAM (Je crois que j'avais eu le même genre de soucis avec ma lib pour sdcc)
Énorme, je ne me rappelais pas qu'on pouvais commuter la ROM basse entre &0000 et &3FFF de la RAM. Ça se fait par le registre RMR du Gate-Array, celui qui permet aussi le changement de mode. Exemple : LD BC,&7F88 ; Bit 3 = 1 = ROM haute désactivée. Bit 2 = 0 = ROM basse activée. OUT (C),C
@CopperFrance : Avec ton explication et la précision dans un autre commentaire, je comprends mieux l'astuce pour contourner cette limitation. Merci 🙂 !
Toujours aussi intéressant 👍🏻 Vivement les suites
Merci ! La suite arrive très très bientôt.
Merci ! C est super clair. Vivement la suite
Merci beaucoup je me régale. Peut-être une idée d'amélioration : j'ai un petit écran d'ordi portable et j'ai du mal à lire le code assembleur, surtout les adresses en hexa. Si c'est possible d'agrandir un peu la partie du code à droite, car la partie gauche affiche surtout du bleu et occupe beaucoup l'écran.
Merci beaucoup ! Ta remarque est pertinente. Je vais tacher d'améliorer cela dès la prochaine vidéo 🙂.
hello c est quand la partie #3 ? hahaha Tu es le premier qui me donne envie de continuer assembleur, ca dit tout
Bonjour ! ha ha ha, content de voir que mes vidéos te plaisent, ca me fait chaud au coeur cette remarque. Je tournerai l'épisode #3 la semaine prochaine, puis la posterai début de semaine d'après si tout va bien. Bonne continuation !
j'aurais aimer la même chose pour le Commodore C64 mais finalement c'est peut être l'occasion de découvrir son cousin Anglais. Merci pour la découverte.
Je vous conseille l'excellente chaine de @JeanMonos : www.youtube.com/@JeanMonos. Vous devriez trouver votre bonheur. Bonne continuation !
C'est top, vous allez à l'essentiel sans vous perdre dans les modes d'adressage. Ça c'était l'horreur dans les livres d'assembleur. Pour le CP il faut le voir comme une soustraction en mémoire, c'est plus facile à retenir pour les flags. Par exemple si A = 1, alors CP 1 = 1 - 1 = 0 donc Z = 1. Et si A = 0, alors CP 1 = 0 - 1 = -1, donc la retenue C = 1, le signe négatif N = 1,...
Merci pour votre commentaire. Oui, j'essaie d'aller à l'essentiel afin que ca reste accessible à tout le monde. Les explications sur le CP pourront être abordées dans une autre vidéo sur les optimisations de code par exemple. Mais oui, dans un premier temps, ca n'est pas essentiel.
C'est pas simple de faire un bon cours d'assembleur, surtout sur CPC. Mais celui-là est vraiment bien amené 👍.
35 ans en arrière j'aurais tout donné pour avoir ces tutoriaux ou ce professeur sur l'assembleur. Merci pour ces vidéos, même si elles arrivent avec quelques décennies de retard, ça reste instructif et divertissant.
Merci pour votre commentaire. Moi aussi, j'aurai donné cher pour avoir toutes ces connaissances à cette époque. Mais nous n'avions pas les mêmes ressources. Internet n'existait pas, les seules sources d'infos étaient les magazines comme Amstrad100%, Hebdogiciel... Les logiciels pour programmer en assembleur n'étaient pas légion, etc... Bref.
@@yreggorpareil, si seulement j'avais eut ces explications à l'époque. La map mémoire qu'on était obligé de découvrir tout seul, la zone ecran,la zone de stockage du programme basic etc. Les "vecteurs" et "flags" qui etaient mystérieux pour nous. Merci pour ton tuto! Par contre je suis surpris je croyais que l'affichage d un texte serait plus rapide en asm qu'en basic. En fait la commande print basic appelle le meme vecteur qu on appelle en asm non?
@@LoganCale : les vecteurs ne sont pas réputés pour être très rapides. Il y a donc des chances que le basic appelle ces mêmes vecteurs. C'est pour cela que les programmeurs expérimentés ne s'en servent plus une fois arrivés à un certain niveau et préfèrent réécrire leurs propres routines.
@@yreggor ha ok je ne savais pas. Merci pour les explications !
bonsoir, excellent . J'aurai aimé ( à l 'époque ) savoir coder sur mon Amstrad en assembleur . 40 ans après , c'est le cas.
C'est exactement ce que je me suis dit il y a quelques mois. Et c'est ca qui m'a donné envie de faire ces vidéos. Merci pour votre commentaire 🙂 !
Vivement la suite, ces vidéos "pas à pas" sont parfaites pour ce mettre tranquillement à assembleur sur CPC
Merci beaucoup ! Ton commentaire me fait très plaisir ☺.
Merci pour ce nouvel épisode !
Merci bien 🙂 !
Bonjour, Vidéo intéressante toute fois celle ci s'adresse aux débutants. Il faut donc je pense leur donner de bonnes bases. On ne compare pas l'accumulateur avec cp 0 c'est très mauvais. Bonne continuation
Bonjour, Merci pour votre remarque. J'avais lu sur certains sites qu'effectivement, CP 0 hérissait le poil de certains codeurs. Néanmoins, je ne vois pas en quoi cela est gênant à partir du moment ou le code fonctionne malgré tout. Si vous avez l'explication du pourquoi il ne faut pas comparer l'accumulateur avec CP 0, je suis preneur. Je sais qu'il y a des optimisations possibles par le biais d'autres instructions ou bien j'aurai pu prendre un caractère différent, mais je pense que ca fera l'objet d'une vidéo spécifique avec les différentes astuces d'optimisation de code. J'en profiterai à ce moment là pour expliquer pourquoi il vaut mieux éviter de faire un CP 0 avec le registre A. Bonne continuation aussi 🙂 !
@@yreggor salut, bravo pour ton excellent 2éme épisode. c'est un peu la guerre entre codeurs, le CP et le OR , une histoire de timing, même si de mémoire les 2 instructions prennent 1 à 2 NOP le CP fait en interne un A-n , et n'affecte pas le registre A le OR quant à lui est une opération mathématique (booléenne) , il affecte le registre A si la condition de sortie est que A=0, les 2 se valent, par contre si par hasard tu voudrais que ta condition de sortie soit A=255, le OR ne fonctionne plus pire il modifierait la valeur de A, et afficherait n'importe quoi, donc l'utilisation du CP pour débuter est la meilleure des solutions, après ça reste de la prog avancée et de l'optimisation, ce qui dans le cas de l'apprentissage n'as pas lieu. étonnant qu'il ne t'ai pas engueulé parce-que tu utilises les vecteurs système ... et si jamais on te pose la question de pourquoi ta condition de sortie serait différent de A=0, dis-leur que tu veut utiliser les caractères de contrôle pour tes textes, ça devrait les calmer ;) sur ce, hâte de voir la suite, et MERCI !!!
@@cr5331 : merci beaucoup pour ce retour qui me fait très plaisir et ton explication. Je comprends son commentaire et je ne lui en veux pas. C'est d'ailleurs aussi le but, qu'on puisse échanger via les commentaires.
Effectivement ce n'est pas très optimisé CP 0 est un cas particulier que l'on préférera remplacer par un OR A afin de mettre à jour les flags (qui ne sont pas mis à jour avec LD A,(HL) ce qui serait bien pratique d'ailleurs)... L'avantage c'est que OR A ne prend qu'un seul octet et un seul NOP (contre 2 octets et 2 NOP pour CP 0). Par contre c'est pas grave pour débuter je pense. D'autre part sur CPC (à cause des cycles arrondis) JR et JP prennent 3 NOP mais JR ne prend que 2 octets donc c'est plus intéressant d'utiliser JR quand c'est possible...
Hello, Bravo pour cette vidéo ;-) Petite précision sur le coding... Dans ta boucle qui affiche le message, il a déjà un RET Z qui va retourner après le test a = 0... à ton call du basic par exemple... Donc dans ce cas là pas besoin de RET de ta fonction d'écriture de message... ;-) Bonne continuation
Bonjour ! Ah oui, effectivement. Merci pour cette remarque.
Très intéressant et fluide. A quand la suite ?
Merci ! La suite devrait arriver la semaine prochaine. J'ai terminé les scripts des épisodes 2 et 3.
Très chouette vidéo. Merci. Je comptais ma soirée à jouer à du rétro. Finalement, j'ai programmé du rétro :-) A quand la suite? Petit question : On doit toujours placer les programmes à l'adresse 1000? Y a-t-il un intérêt de placer le programme à une autre adresse ?
Merci ! Pour l'adresse, vous êtes libre de la changer. L'adresse 1000 est arbitraire. C'est juste plus facile de la retenir. Placer le programme à une autre adresse aura un intérêt le jour où on aura besoin de toute l'espace mémoire disponible pour stocker toutes nos données, notamment si on fait des jeux avec des sprites. Là, on aura besoin d'organiser notre code. Pour l'instant, on est sur de tout petits programmes.
Merci pour cette vidéo, c’est très clair et interessant 👍
@@Kenshiro72 Merci 🙂 !
Génial!!!! Merci et vivement la suite! Très clair et didactique.
Merci 🙂 !
Bonjour. Superbe vidéo. Par contre & n'est pas un caractère "ET", mais s'appelle Esperluette.
Bonjour ! Je ne savais pas. Merci !
@@yreggor Ce n'est pas grave, je taquine. Je l'ai su en cours de programmation avec un professeur à cheval sur ces termes. Bravo pour l'assembleur, je me suis tours demandé comment c'était possible d'arriver à faire un jeu avec un langage aussi complexe.
@@yreggor Et le trret de soulignement/tiret du bas, s'apelle Underscore. :D
merci pour cette vidéo
Merci 🙂 !
Merci c'était très sympa, vivement la suite :)
Merci 🙂 !
merci ! vivement la suite !
Merci 🙂 !
Bonne initiative, vivement lá suite
Merci 🙂 !
Sympa ce petit tuto Z80. :)
Merci bien 🙂 !
Merci pour cette initiative. Je cherchais aussi des cours d'ASM clairs en français. Vivement la partie sur les sprites et scrollings !
Pour les sprites, ca viendra beaucoup, beaucoup plus tard. Je maitrise à peine leur affichage. Quant aux scrollings, là, je suis en demande. J'essaie de trouver des sources sur les scrollings de décors mais c'est très dur de trouver de bonnes infos là dessus.
Tres bonne initiative !!
Merci 🙂 !
Excellent, j'ai tout compris alors que je n'ai jamais codé (à part quelques notions de Basic). Hâte de découvrir la suite !
Merci pour ton commentaire. Ca me fait très plaisir !
Merci pour ta video ! Vivement la 2eme!
Super ! Merci beaucoup !
Attention, AF n'est pas un registre 16 bits, on ne peut pas définir LD AF,&C000 ... c'est l'assemblage du regitre A 8bits, et du FLAG il existe 2 autres registres 16 bits, IX et IY
OK. Merci pour la rectification.
Thank you very much for this!!!! I will follow you. Greetings from Greece.
Happy to see fans from Greece. Thank you very much.
Cool, je regarderais ca
Merci !
Merci pour le retour !!!! Vraiment un très bon weekend pour cette AC2024 avec une organisation aux petits oignons comme d'hab !!!!
Content aussi de t'avoir rencontré. Cette convention aura été très sympa. Par contre, désolé de ne pas avoir pu inclure l'extrait d'Airwolf. J'ai eu un souci avec la vidéo 😅.
@@yreggor Aucuns soucis 😀😀
Imagine the feeling of being there!!! Absolutely amazing!! 💯
Pour le coup c'est un voyage inattendu !!! Joli !!