Page 1 sur 1

10 PRINT CHR$(205.5+RND(1));:GOTO 10 en assembleur

Publié : 06 nov. 2022 17:50
par lightbeing
J'ai créé une chaine youtube dédiée à la programmation (essentiellement "francophone") en assembleur et langage machine sur Commodore 64.

J'y ai commencé un cours mais j'ai surtout fait une vidéo pour présenter des routines en langage machine s'inspirant de la célèbre ligne en BASIC : 10 PRINT CHR$(205.5+RND(1)); : GOTO 10

La première vidéo décrit le code utilisé pour deux routines
- l'une proche du code source BASIC ayant recours aux codes PETSCII et à la fonction $FFD2
- l'autre ayant recours aux codes écran et aux adresses de la mémoire écran
https://youtu.be/YbEbNGgcS6w

La deuxième vidéo (plus intéressante) décrit le code utilisé pour une troisième routine:
- ayant recours à la fonction scrolling pixel par pixel du registre $D011, ainsi qu'aux codes écran et aux adresses de la mémoire écran
https://youtu.be/LbWiCBZoKlk

Les routines ne sont pas optimisées, la dernière ayant gardé quelques lignes scories inutiles que les débutants en LM et assembleur pourront s'amuser à rechercher. :D

Re: 10 PRINT CHR$(205.5+RND(1));:GOTO 10 en assembleur

Publié : 08 nov. 2022 18:26
par rendomizer
Tres interessent, cependant sais-tu faire une sinusoidale en assembleur 6510 ou z80 ?

Re: 10 PRINT CHR$(205.5+RND(1));:GOTO 10 en assembleur

Publié : 08 nov. 2022 23:53
par Mokona
J'ai commencé à regarder la partie d'initiation au langage machine. C'est clair et bien expliqué.

Re: 10 PRINT CHR$(205.5+RND(1));:GOTO 10 en assembleur

Publié : 12 nov. 2022 01:18
par lightbeing
rendomizer a écrit : 08 nov. 2022 18:26 Tres interessent, cependant sais-tu faire une sinusoidale en assembleur 6510 ou z80 ?
Réponse de principe: non
Réponse nuancée: avec du travail et de l'investissement, je pourrais en 6502... pas en z80.

Re: 10 PRINT CHR$(205.5+RND(1));:GOTO 10 en assembleur

Publié : 12 nov. 2022 01:19
par lightbeing
Mokona a écrit : 08 nov. 2022 23:53 J'ai commencé à regarder la partie d'initiation au langage machine. C'est clair et bien expliqué.
Merci pour le retour, cela m'incite à poursuivre le projet.
J'ai prévu une vidéo d'explication "technique" sur le fonctionnement du faisceau de balayage "Raster" et son utilisation en langage machine.

Re: 10 PRINT CHR$(205.5+RND(1));:GOTO 10 en assembleur

Publié : 12 nov. 2022 11:56
par frktaunus
Je n'ai pas encore regardé :oops: mais tout cela est très intéressant.
Je me suis remis tout seul à l'assembleur sur C64/C128, j'avance bien dans ce que je veux faire.
Il faut aussi que je reprenne mes programmes des années 80 (pour les terminer?).
Les rasters, c'est inconnu pour moi, je suis impatient!

Re: 10 PRINT CHR$(205.5+RND(1));:GOTO 10 en assembleur

Publié : 14 nov. 2022 18:16
par lightbeing
frktaunus a écrit : 12 nov. 2022 11:56 (supp modo: quote inutile)
Bravo !!!

J'ai mis en ligne la première partie de la vidéo sur le Raster. C'est la partie "caractéristiques techniques" pour comprendre ce que c'est le Raster et comment il fonctionne sur l'écran.

J'aborderai dans une autre vidéo ses registres de contrôle du raster ($D012 et $D011) avec des exemples de programmation en LM pour faire des effets visuels simples.

Puis une troisième vidéo abordera le contrôle du raster avec les IRQ... demandes d'interruptions en français, qui permettent des effets visuels plus sophistiqués.