MSX Village forum

La Place des Développeurs Msx Basic Sound & Play Comment remettre à l'état initial

kirem Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 05/11/2010 à 13h29

Messages: 45

Le 19/07/2021 à 00h56
Bonjour,
j arrive pas à remettre le son à l'état initial.


10 SOUND6,11
20 SOUND 7,7:SOUND 12,12
30 FOR C=8 TO 10:SOUND C,16:NEXT
40 SOUND 13,0
run
Play"abc"



Le son fonctionne bien(un tir) mais l'instruction Play ne sort que du souffle.
Si je remet à zéro les registres du psg en rajoutant:

50 for f=0to13:sound f,0:next

L'instruction Play joue les notes mais toujours un souffle énorme.

Pour remettre le bon son je dois exécuter l'instruction BEEP, mais le problème on entend Beep.

Donc ma question : il faut mettre quelles valeurs dans les registres du psg avec sound pour retrouver l'état initial sans passer par Beep ?
Site web    
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5886

Le 19/07/2021 à 02h05
Source :
https://www.msx.org/wiki/SOUND

Je n'ai jamais utilisé la fonction SOUND, mais d'après ce que j'ai lui sur le lien ci dessus, le "SOUND 7,x" qui est le registre du Mixer setting, la valeur de "x" doit être comprise entre 128 et 191,.... Ça dois être ça le problème.... :tea



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
Bastion Rebel Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 21/09/2013 à 07h42

Messages: 1887

Le 19/07/2021 à 06h59
salut
le AY 3910 du MSX a ; 3voies (play) + 1 Generateur de son (Sound) que tu peut "mixer"

normal que si tu fait un "bruit" et que tu remet pas a 0 ou que tu modifie pas la forme de l'onde le souffle reste avec le PLAY !!
le bit 7 du registre 7 DOIT TOUJOURS ETRE A 1 donc valeur 128 minimum Edité par Bastion Rebel Le 19/07/2021 à 07h01


TURBO-R FS-A1ST 512/128ko MSX2+ NMS 8250 F4 /Fix Audio /Ram 1/4Mb VDP9958 VRAM 192ko 2FDD SANYO WAVY PHC35J MSX2 NMS 8280 Ram 4Mb VDP9938 VRAM 192ko 2FDD NMS 8250 128/128ko 2FDD VG8235/39 128/128ko 1FDD SONY HB-F700D MSX1 MC810 32/16k VG 8020 64k HB75F 64k HX-22 64k RS232/ CX5M 32k HB501F EXT : My Exp 4X/[b] MegaFlashSCC 512ko/BERT R2/BEER CF/SUNRISE 2CF/FUNRICE V2.01/MAXIOL/MEGASCSI HDD-CD/SDMSX 1SD/FMPAC SRAM/NMS1205+1160/RS 232 Harukaze/GR8NET/DOS2/ HOMER V2 RAM512ko/Floppy Pack/MAXduino/ROM1664/FM Pak /GR8NET /AMIGA/ PC/ RaspB Pi(B) / ARDUINO
E-mail    
Sector28 Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 12/05/2018 à 23h00

Messages: 561

Le 19/07/2021 à 07h46
DEFUSR=&H90:X=USR(0)


DONALD TRUMP IS FAST APPROACHING
NEMESIS ! RETURN IMMEDIATELY !
   
kirem Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 05/11/2010 à 13h29

Messages: 45

Le 19/07/2021 à 23h44
Merci pour vos réponses ,je vais faire avec la méthode de
Sector28 :
DEFUSR=&H90:X=USR(0)

car sa fonctionne très bien , bien que pour moi c'est du chinois cet appel .

Site web    
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5886

Le 20/07/2021 à 02h12
Source : https://www.msx.org/wiki/Main-ROM_BIOS#PSG

Nooon, c'est pas du chinois,.... C'est du belge en faite :lol

Ou plus précisément &h90, c'est une routine du BIOS qui initialise le PSG

PSG : 0090h (GICINI)

Function: Initialises PSG and sets the initial value for the PLAY instruction

Entry: None
Output: None
Modify: All Registers
Notes : Interrupts must be disabled to call this routine
After initialization, the registers will have the following values
R#0 = 01010101
R#1 = 00000000
R#2 = 00000000
R#3 = 00000000
R#4 = 00000000
R#5 = 00000000
R#6 = 00000000
R#7 = 10111000
R#8 = 00000000
R#9 = 00000000
R#10 = 00000000
R#11 = 00001011
R#12 = 00000000
R#13 = 00000000



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie