comment jouer une note en asm sur VG5000µ ?

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

Modérateurs : Carl, Papy.G, fneck

Répondre
Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

comment jouer une note en asm sur VG5000µ ?

Message par rendomizer » 06 sept. 2017 17:45

Je cherche désespéramment de jouer une note mais un message d'erreur s'affiche a chaque tentative ??? J'utilise la routine call $008F page 76 "clefs pour VG5000"

Code : Tout sélectionner

.org $6000
_debut:    
          push hl
          ld bc,_buffer ; buffet ou sont stockés les notes
          ld e,6 ; longuer du buffet
          call $008F
          pop hl
          ret
_buffer:
.db $54,$32,$30,$43,$44,$45
le mot de passe c'est quoi ? quoi.

Avatar du membre
Carl
Modérateur
Messages : 10215
Enregistré le : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

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

Message par Carl » 06 sept. 2017 18:00

Comment faire un sound et non un play "ABCD...."
Capture2.JPG
Capture2.JPG (56.56 Kio) Vu 1146 fois
Capture.JPG
Capture.JPG (48.08 Kio) Vu 1146 fois
Carl

Avatar du membre
Carl
Modérateur
Messages : 10215
Enregistré le : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

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

Message par Carl » 06 sept. 2017 18:07

Pour le Play...
Capture3.JPG
Capture3.JPG (38.1 Kio) Vu 1142 fois
Capture4.JPG
Capture4.JPG (55.39 Kio) Vu 1141 fois
Carl

Daniel
Messages : 10679
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

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

Message par Daniel » 06 sept. 2017 18:13

La routine $008F altère tous les registres, c'est écrit en bas de la page 76 de Clefs pour VG5000.
Daniel
L'obstacle augmente mon ardeur.

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

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

Message par rendomizer » 06 sept. 2017 19:21

je n'y arrive pô. Toujours le même message d'erreur de syntax :shock:
le mot de passe c'est quoi ? quoi.

Avatar du membre
Mokona
Messages : 362
Enregistré le : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

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

Message par Mokona » 06 sept. 2017 21:02

Envoie moi le code, je peux regarder.

__sam__
Messages : 4121
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

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

Message par __sam__ » 06 sept. 2017 21:07

Faire gaffe à la pile!!! La doc indique qu'il faut pusher un truc bidon après l'addresse de retour (la routine play se plante avec la pile). Cf l'exemple avec la routine playx au paragraphe 27.2. Un décalage sur la pile peut provoquer des erreurs bizarres, comme par exemple des fausses syntax-error.
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

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

Message par rendomizer » 06 sept. 2017 21:12

Mokona a écrit :
06 sept. 2017 21:02
Envoie moi le code, je peux regarder.

Code : Tout sélectionner

.org $6000
    
          ld bc,_buffer ; buffet ou sont stockés les notes
          ld e,6 ; longuer du buffet
_debut:         
          call $008F
          jp _debut
_buffer:
.db $54,$32,$30,$43,$44,$45
le mot de passe c'est quoi ? quoi.

Avatar du membre
Mokona
Messages : 362
Enregistré le : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

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

Message par Mokona » 06 sept. 2017 22:39

Voilà ma proposition (l'assembleur est un peu différent dans la syntaxe, mais la transcription est aisée)

Comme indiqué dans la documentation ci-dessus, il faut ajouter sur la pile, après l'adresse de retour mise par le call, une valeur qui ne servira pas.

Ceci est du à la manière dont la commande est appelée (et que je n'ai pas fini d'analyser).

L'astuce classique est donc de mettre sur la pile l'adresse de retour avec un call (l'interprêteur BASIC lui, fait ça à la main, ça serait aussi une solution valide, cf. $250a dans la ROM 1.1), puis d'embrayer sur un JP (qui lui ne touche pas la pile), avec la manipulation de la pile entre temps.

Code : Tout sélectionner

org $6000
_debut:
          ld bc,_buffer ; buffet ou sont stockés les notes
          ld e,6 ; longueur du buffer
          call play
          ret
play:
          push hl
          jp $008F
_buffer:
          defb $54,$32,$30,$43,$44,$45

joaopa
Messages : 400
Enregistré le : 14 sept. 2013 12:17

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

Message par joaopa » 07 sept. 2017 06:09

Un call suivi d'un ret. Mes yeux saignent :mrgreen:

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

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

Message par rendomizer » 07 sept. 2017 07:05

Ca marche ouf, un grand merci pour cette démonstration de code. Mon VG5000 n'a rien compris :D
le mot de passe c'est quoi ? quoi.

Avatar du membre
Carl
Modérateur
Messages : 10215
Enregistré le : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

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

Message par Carl » 07 sept. 2017 09:50

faire un grand merci à tous les intervenants dans ton post aurait été un plus... :roll:

Carl

Avatar du membre
Mokona
Messages : 362
Enregistré le : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

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

Message par Mokona » 07 sept. 2017 09:56

Pour le bien être des yeux de joaopa, qui me semblent dangereusement rouge, je précise que ce squelette d'appel est une forme générale qui permet du code avant et après le call.

Si la pile contient l'adresse de retour de l'appel de "_debut" au moment du "call play" et qu'il n'y a rien à faire entre ce call et le ret, alors la paire "push hl" "jp $008F" suffit.

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

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

Message par rendomizer » 07 sept. 2017 20:55

Un grand merci à tous les intervenants du forum vous avez été choux
le mot de passe c'est quoi ? quoi.

Répondre