comment jouer une note en asm sur VG5000µ ?

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: comment jouer une note en asm sur VG5000µ ?

Message par Markerror »

Je n'ai pas testé en live (le debugger de DcVG5k permet un mode pas à pas, ça peut être utile dans ce cas, mais :

Dans ton premier exemple, tu empiles "PLAY" puis HL

Dans ton deuxième exemple, tu empiles HL puis "PLAY".

Si la routine qui joue la musique fait un POP de trop, dans le deuxième cas, tu vas te retrouver à l'adresse HL+3 sur le PC, donc potentiellement pas tout tout à la suite des instructions après le CALL initial.
Dernière modification par Markerror le 07 mai 2020 08:19, modifié 1 fois.
Patrick
Messages : 2019
Inscription : 16 mai 2009 09:30
Localisation : Clermont-Ferrand

Re: comment jouer une note en asm sur VG5000µ ?

Message par Patrick »

Il manque le ld e,5 dans le second exemple. Est-ce aussi simple que ça ?
Patrick
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: comment jouer une note en asm sur VG5000µ ?

Message par joaopa »

@Patrice. j"avais mal écrit le code dans mon message. Il y avait bien un ld e,5

L'explication de Markerror doit être la bonne.

Je crois qu'il y a encore une blague avec cette routine. Il faut que le buffer soit de longueur au moins 7.
Je pense que la partie interpréteur du basic envoie une chaine de taille au moins 7 (complétée par des 0 si on envoie moins de caractères). Si on lance directement la routine avec moins de 7 (strictement) caractères, aucun son ne se produit. Il suffit pour régler le problème de rajouter des 0 à la fin du buffer pour compléter jusqu'à au moins 7.

Mokona pourrait peut-être nous en dire plus.
Répondre