La Place des Développeurs Son PCM sur TURBO-R
j'ai retrouvé ça dans un article de GDX
CALL PCMREC (@adrs de début,adrs de fin,fréquence,niveau de déclenchement,compression,s)
ou bien
CALL PCMREC (variable tableau,longueur,fréquence,niveau de déclenchement,compression)
fréquence = 0~3
0 -> 15.7500KHz
1 -> 7.8750KHz
2 -> 5.2599KHz
3 -> 3.9375KHz
niveau de déclenchement = 0~127 [optionnel]
compression = 0~1
s = vram [optionnel]
longueur est optionnel
CALL PCMPLAY (@adrs de début,adrs de fin,fréquence,s)
ou bien
CALL PCMPLAY (variable tableau,longueur,fréquence)
CALL PCMREC (@adrs de début,adrs de fin,fréquence,niveau de déclenchement,compression,s)
ou bien
CALL PCMREC (variable tableau,longueur,fréquence,niveau de déclenchement,compression)
fréquence = 0~3
0 -> 15.7500KHz
1 -> 7.8750KHz
2 -> 5.2599KHz
3 -> 3.9375KHz
niveau de déclenchement = 0~127 [optionnel]
compression = 0~1
s = vram [optionnel]
longueur est optionnel
CALL PCMPLAY (@adrs de début,adrs de fin,fréquence,s)
ou bien
CALL PCMPLAY (variable tableau,longueur,fréquence)
voici les appels dans la rom
PCMPLY
Address : #0186
Function : Plays specified memory area through the PCM chip
Input : A = v 0 0 0 0 0 x x
| | |
| +-+-- Quality parameter (Speed: 0 = Fast)
+---------------- VRAM usage flag
HL= Start address in RAM or VRAM
BC= Length of area to play
D = Bit 0 = Bit 17 of area length when using VRAM
E = Bit 0 = Bit 17 os start address when using VRAM
Output : C-flag set when aborted with CTRL-STOP
Registers: all
PCMREC
Address : #0189
Function : Records audio using the PCM chip into the specified memory area
Input : A = v t t t t c x x
| | | | | | | |
| | | | | | +-+-- Quality parameter (Speed: 0 = Fast)
| | | | | +------ Zero-data compression
| +-+-+-+-------- Treshold
+---------------- VRAM usage flag
HL= Start address in RAM or VRAM
BC= Length of area to play
D = Bit 0 = Bit 17 of area length when using VRAM
E = Bit 0 = Bit 17 os start address when using VRAM
Output : C-flag set when aborted with CTRL-STOP
Registers: all
PCMPLY
Address : #0186
Function : Plays specified memory area through the PCM chip
Input : A = v 0 0 0 0 0 x x
| | |
| +-+-- Quality parameter (Speed: 0 = Fast)
+---------------- VRAM usage flag
HL= Start address in RAM or VRAM
BC= Length of area to play
D = Bit 0 = Bit 17 of area length when using VRAM
E = Bit 0 = Bit 17 os start address when using VRAM
Output : C-flag set when aborted with CTRL-STOP
Registers: all
PCMREC
Address : #0189
Function : Records audio using the PCM chip into the specified memory area
Input : A = v t t t t c x x
| | | | | | | |
| | | | | | +-+-- Quality parameter (Speed: 0 = Fast)
| | | | | +------ Zero-data compression
| +-+-+-+-------- Treshold
+---------------- VRAM usage flag
HL= Start address in RAM or VRAM
BC= Length of area to play
D = Bit 0 = Bit 17 of area length when using VRAM
E = Bit 0 = Bit 17 os start address when using VRAM
Output : C-flag set when aborted with CTRL-STOP
Registers: all
exemple basic de NYYRIKKI
10 SCREEN 8
20 _PCMREC(@0,&H7FFF,0,0,0,S)
30 BSAVE"SHIT.PCM",0,&H7FFF,S
le fichier est donc un fichier binaire , il doit être sous la forme FE,XXXX,XXXX (adresse début,adresse de fin)
10 SCREEN 8
20 _PCMREC(@0,&H7FFF,0,0,0,S)
30 BSAVE"SHIT.PCM",0,&H7FFF,S
le fichier est donc un fichier binaire , il doit être sous la forme FE,XXXX,XXXX (adresse début,adresse de fin)
ericb59
Membre non connecté
Conseiller Municipal
oui, merci jipe.
mais tout ca je savais déjà...
j'ai déja fait des enregistrements pcm avec le micro,du turbo-r, sauvergardés, et rejoués...
par contre comment transférer/convertir un fichier pc vers le,msx ?
pour que ça soit compatible avec Call pcmplay ? Edité par ericb59 Le 27/12/2013 à 19h13
mais tout ca je savais déjà...
j'ai déja fait des enregistrements pcm avec le micro,du turbo-r, sauvergardés, et rejoués...
par contre comment transférer/convertir un fichier pc vers le,msx ?
pour que ça soit compatible avec Call pcmplay ? Edité par ericb59 Le 27/12/2013 à 19h13
se contenter d'un fichier de moins de 64K
ajouter une en tête FE 0000 XXXX avec un éditeur hexa décimal
XXXX est a calculer d'aprés la taille du fichier
ne pas oublier que l'utilisation de la VRAM bloque la page et donc pas de données graphiques dedans
et surtout prier pour que ça marche car je n'ai pas fait l'essai , tout est théorique
ajouter une en tête FE 0000 XXXX avec un éditeur hexa décimal
XXXX est a calculer d'aprés la taille du fichier
ne pas oublier que l'utilisation de la VRAM bloque la page et donc pas de données graphiques dedans
et surtout prier pour que ça marche car je n'ai pas fait l'essai , tout est théorique
ericb59
Membre non connecté
Conseiller Municipal
ericb59
Membre non connecté
Conseiller Municipal
la mémoire du MSX est divisée en BANK de 16K
sous Basic les 2 premiers banks sont pris par le bios et le basic
les 2 banks suivants sont alloués a la ram maxi 28k version K7 et aux variables systémes qui sont immuables
avec un memory mapper on obtient ceci
Port FC ROM mappé a 0000-3FFF
Port FD ROM mappé a 4000-7FFF
Port FE RAM mappé a 8000-BFFF
Port FF RAM mappé a C000-FFFF
donc ce qui nous interesse est la zone memoire de 8000 a BFFF pour stocker le PCM de 16K
en jouant sur la valeur du out FE on va obtenir plusieurs pages de 16K
mais il faut savoir que la zone basic va se réduire d'autant et passer a 12k environ
sous Basic les 2 premiers banks sont pris par le bios et le basic
les 2 banks suivants sont alloués a la ram maxi 28k version K7 et aux variables systémes qui sont immuables
avec un memory mapper on obtient ceci
Port FC ROM mappé a 0000-3FFF
Port FD ROM mappé a 4000-7FFF
Port FE RAM mappé a 8000-BFFF
Port FF RAM mappé a C000-FFFF
donc ce qui nous interesse est la zone memoire de 8000 a BFFF pour stocker le PCM de 16K
en jouant sur la valeur du out FE on va obtenir plusieurs pages de 16K
mais il faut savoir que la zone basic va se réduire d'autant et passer a 12k environ
ericb59
Membre non connecté
Conseiller Municipal
Avec NEstor Basic j'ai accès à toute la mémoire du Turbo-R, par "segments" de 16Ko.
Je peux facilement stocker des PCM dans ces segments... Par contre comment les réutiliser avec la commande PCMPLAY qui demande des adresses memoire qui ne sont pas accessibles pour le coup !!
Mince !
Faire un transfert dans une zone tampon accessible ? Mmouais ! Mais je ne peux pas réduire la mémoire dispo pour le Basic j'en ai besoin !!
Je peux facilement stocker des PCM dans ces segments... Par contre comment les réutiliser avec la commande PCMPLAY qui demande des adresses memoire qui ne sont pas accessibles pour le coup !!
Mince !
Faire un transfert dans une zone tampon accessible ? Mmouais ! Mais je ne peux pas réduire la mémoire dispo pour le Basic j'en ai besoin !!
le nestor basic doit utiliser le systéme des bank qu'il remplace par des segments
si tu n'est pas trop gourmand tu peux reserver une plage de mémoire de la VRAM en page cachée en ne stockant pas d'image dedans
si tu n'est pas trop gourmand tu peux reserver une plage de mémoire de la VRAM en page cachée en ne stockant pas d'image dedans
ericb59
Membre non connecté
Conseiller Municipal
Mince ... Impossible de remettre la main sur le LA VRAM MAP !
J'avais trouvé un site où il y avait toutes les adresses de la VRAM
Zones de sprites, et aussi ce qui m'interesse, les adresses de la VRAM non utilisée sur les pages 0 et 1 (en dessous des 212 pixels)
Z'avez pas ça sous la main des fois ?
J'avais trouvé un site où il y avait toutes les adresses de la VRAM
Zones de sprites, et aussi ce qui m'interesse, les adresses de la VRAM non utilisée sur les pages 0 et 1 (en dessous des 212 pixels)
Z'avez pas ça sous la main des fois ?
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie