[VG-5000] création d'une cartouche ROM

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve à nos bouzes.

Modérateurs: Papy.G, fneck, Carl

Re: [VG-5000] création d'une cartouche ROM

Messagede 6502man » 20 Avr 2017 17:27

Test aujourd'hui du AY-3 sur VG5000.

J'ai fait un player que j'ai intégré en fin de ROM Basic, il n'y a qu'a charger les donnèes de la musique et lancer la routine ROM :D

Ca fait drole d'entendre une telle musique sur un VG5000 :lol: :lol: :lol:

En plus on peut continuer à utiliser le BASIC en musique :lol: :lol: :wink:


Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
 
Messages: 8103
Inscription: 12 Avr 2007 22:46
Localisation: VAR

Re: [VG-5000] création d'une cartouche ROM

Messagede Mokona » 20 Avr 2017 18:22

Excellent.
Avatar de l’utilisateur
Mokona
 
Messages: 129
Inscription: 17 Déc 2016 23:01
Localisation: Nord Est des Yvelines

Re: [VG-5000] création d'une cartouche ROM

Messagede Markerror » 21 Avr 2017 08:13

ah ah, je vois que tu as réussi à maîtriser les interruptions, c'est joli ! Tu as bricolé le player CPC Soundtrakker (ou soundtrakker 128) je suppose, la musique me dit quelque chose.

A l'écoute, on ne dirait pas qu'il y a des effets de perturbations, tu pourrais diffuser ton exécutable pour que j'essaie sur ma VG5232 ? Si j'ai des soucis avec, je saurais que TotO m'en veut personnellement :mrgreen: .
Markerror
 
Messages: 1153
Inscription: 31 Oct 2011 20:21
Localisation: Orléans

Re: [VG-5000] création d'une cartouche ROM

Messagede Carl » 21 Avr 2017 09:09

Super ! 8)

Carl
Avatar de l’utilisateur
Carl
Modérateur
 
Messages: 9502
Inscription: 08 Avr 2007 13:21
Localisation: www.dole.org

Re: [VG-5000] création d'une cartouche ROM

Messagede Carl » 21 Avr 2017 09:14

Phil,
Pour le fun, tu pourrais envisager d'implémenter l'extension de ROM "LGRAPH" :roll:
lgraph.jpg
lgraph.jpg (25.21 Kio) Vu 89 fois

lgraph_vg5000k7.zip
(1.67 Kio) Pas encore téléchargé

zone.jpg
zone.jpg (37.83 Kio) Vu 89 fois


Carl
Avatar de l’utilisateur
Carl
Modérateur
 
Messages: 9502
Inscription: 08 Avr 2007 13:21
Localisation: www.dole.org

Re: [VG-5000] création d'une cartouche ROM

Messagede fneck » 21 Avr 2017 10:23

Très intéressant l’extension musique en ROM du VG5000, belle réalisation 8)
Avatar de l’utilisateur
fneck
Site Admin
 
Messages: 11156
Inscription: 01 Avr 2007 12:03
Localisation: Drôme Provençale (26)

Re: [VG-5000] création d'une cartouche ROM

Messagede 6502man » 21 Avr 2017 16:10

@Markerror: le player n'est inspiré d'aucun autre existant hormis ceux que j'avais fait pour Oric, Exelvision et MSX qui utilisent ma compression perso, simpliste :wink:
Et merci :wink: pour l'information sur les interruptions du VG5000, par contre j'ai désactivé le compteur d'interruption car la musique était trop lente, est ce du au fait que le Basic tourne derrière ou autre ???

Voici le code que j'ai implanté en $3E40, tu peux le re-assembler avec une adresse RAM pour tester :
On peut faire certainement mieux, mais le but était de tester le PSG sur VG5000 :wink:
les données sont les valeurs des registres brut exporter du PSG format YM, converti pour l'occasion en XYM avec une compression simple avec un utilitaire "maison" mais qui fait gagné pas mal de place en RAM (16Ko pour 50/60Ko) et est décompressé à la volée.
Il reste à insérer l'extinction du son du PSG en fin de musique, une simple boucle d'envoi $00 aux 16 registres du PSG :wink:

J'imagine que ton player est bien plus évolué et surtout utilise les partitions des trackers :D
Code: Tout sélectionner
;-------------------------------
;         VG5000
;
;   TEST CARTOUCHE ROM (VG5301) AND AY-3 (VG5232)
;
;   (c) 2017 6502man
;
;-------------------------------
;
AY3         .EQU   $8002
TotFrame   .EQU   $8000
;IntCount   .EQU   $8004
PSG_Adr      .EQU   $FF
PSG_Data   .EQU   $FE
Int         .EQU   $47D0


.org $3E40
Init
      DI
   push AF
   push BC
   push DE
   push HL
   push IX
   push IY

   ;   on prepare les variables pour le player
   LD DE,AY3+3-2   ;   nombre total de frame à jouer
   LD HL,TotFrame   ;   variable en RAM (compteur de frames)
   LD A,(DE)
   LD (HL),A
   INC DE
   INC HL
   LD A,(DE)
   LD (HL),A

   LD DE,AY3+25-2       ; Position des données
   LD HL,AY3         ;   variable en RAM (pointeur des données)
   LD A,D
   LD (HL),A
   INC HL
   LD A,E
   LD (HL),A
   
   ;   on met en place l'interruption.
   LD HL,Int
   LD A,$C3
   LD (HL),A
   INC HL
   LD DE,%START
   LD A,E
   LD (HL),A   
   INC HL
   LD A,D
   LD (HL),A
   
;   LD HL,IntCount
;   LD A,7
;   LD (HL),A
   
   pop IY
   pop IX
   pop HL
   pop DE
   pop BC
   pop AF
      EI
   RET
   
   
;/////////////////////////////////////////      
START
      DI   ;   desactive INT pour musique
   push AF
   push BC
   push DE
   push HL
   push IX
   push IY
   
;   LD HL,IntCount   ;   test si 6eme occurence d'appel
;   DEC (HL)         ;   de l'interruption
;   JP NZ,FinInt
;
;   LD HL,IntCount   ;   remet le compteur à 7
;   LD A,7
;   LD (HL),A
   
   LD HL,AY3         ;   variable en RAM (pointeur des données)
   LD A,(HL)
   LD D,A
   INC HL
   LD A,(HL)
   LD E,A
   
   
   
BoucleAY3
   LD C,00
   LD A,(DE)   ;   on lit le premier octet de compression XYM
   LD H,A          ;   on reserve l'octet
   INC DE
   LD A,(DE)   ;   on lit le deuxieme octet de compression XYM
   LD L,A         ;   on reserve l'octet
   INC DE
   LD B,$09      ; compteur de décalage bits des 2 octets lu précedement
Frame
         DEC B
         JP Z,Oct2
      LD A,C
      OUT (PSG_Adr),A
      INC C
         SLA H      ; décale 1 bit à gauche et récupére l'état du bit dans Carry
         JP NC,Frame
      LD A,(DE)
      OUT (PSG_Data),A
      INC DE
         JP Frame

Oct2
   LD B,$07      ; compteur de décalage des bits 2 octets lu précedement
Frame2
         DEC B
         JP Z,EndFrame
      LD A,C
      OUT (PSG_Adr),A
      INC C
         SLA L      ; décale 1 bit à gauche et récupére l'état du bit dans Carry
         JP NC,Frame2
      LD A,(DE)
      OUT (PSG_Data),A
      INC DE
         JP Frame2
EndFrame      
      ; test fin de la musique ?
      LD HL,TotFrame+1   ;   variable en RAM
      DEC (HL)
      JP NZ,Continueplay
      LD HL,TotFrame   ;   variable en RAM
      DEC (HL)
      LD A,$00
      CP (HL)
      JP Z,Exit
      
Continueplay      
   ;   mise à jour du pointeur
   LD HL,AY3         ;   variable en RAM (pointeur des données)
   LD A,D
   LD (HL),A
   INC HL
   LD A,E
   LD (HL),A


FinInt   
   pop IY
   pop IX
   pop HL
   pop DE
   pop BC
   pop AF
   EI      ;   retabli INT
   RET
   

Exit
   LD HL,Int
   LD A,$C9   ;   arrete l'interruption.
   LD (HL),A

   ;Eteindre le son du AY-3

   
   JP FinInt

ENDFILE   
.END


Et voici les données à charger en $8000, j'ai voulu en même temps tester la RAM et le PSG en condition réel :wink:
XYM_Vg5K.zip
(102.93 Kio) Téléchargé 1 fois



Est ce que ça vaut le coût que je modifie ce player pour l'intégrer en fin de ROM Basic pour ceux qui voudrait sonoriser leurs programmes ?
Il faut juste prévoir un CLEAR,xxxx pour protéger la zone des données de la musique, et prendre en paramètre l'adresse des données musique, et peut être un flag pour boucler la musique !



@Carl:
- Que fait LGRAPH ?
- comment est il appelé dans les programmes BASIC ?

1) le problème est qu'il est situé en RAM si on veux le mettre en ROM il faut modifier le programme en conséquence (translater toutes les adresses) !
2) la taille 1181 octets dépasse la taille dispo en fin de ROM BASIC !
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
 
Messages: 8103
Inscription: 12 Avr 2007 22:46
Localisation: VAR

Re: [VG-5000] création d'une cartouche ROM

Messagede Carl » 21 Avr 2017 18:09

Phil,
après le chargement de Lgraph, la machine reboot et plusieurs nouvelles commandes basic sont disponible (uniquement valable avec l'extension VG5216)

la doc : http://vg5000.free.fr/docs/livres/VG521 ... sation.pdf

Carl
Avatar de l’utilisateur
Carl
Modérateur
 
Messages: 9502
Inscription: 08 Avr 2007 13:21
Localisation: www.dole.org

Re: [VG-5000] création d'une cartouche ROM

Messagede Markerror » 21 Avr 2017 20:25

Bon, je dois pas être doué...

J'ai assemblé en &"5000" le player avec Winape et après chargement de la bête et des datas, je n'obtiens que des bruits, pas de sons mélodieux :-(. On entend bien derrière un rythme qui correspondrait à priori à la musique, mais rien de plus sinon du souffle.

Je dois zapper quelque chose, mais là, je ne vois pas trop:-(. Tu pourrais asssembler en &"5000" ton source et poster le fichier binaire, histoire que je le compare avec le mien ?)

Pour la coupure du son, il suffit plutôt de mettre à zéro les trois registre de volume. Ca pourrait d'ailleurs faire l'objet d'une petite commande dans la ROM système, c'est un peu pénible d'être obligé d'éteindre électriquement le VG5000 quand on veut couper une musique :-). Un petit patch du Basic avec une commande SILENCE ou autre serait pas mal :-).
Markerror
 
Messages: 1153
Inscription: 31 Oct 2011 20:21
Localisation: Orléans

Re: [VG-5000] création d'une cartouche ROM

Messagede 6502man » 21 Avr 2017 20:36

Voila l'assemblage en $5000 ;
VGXYM_$5000.ASM.BIN.zip
(334 Octets) Téléchargé 2 fois
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
 
Messages: 8103
Inscription: 12 Avr 2007 22:46
Localisation: VAR

Re: [VG-5000] création d'une cartouche ROM

Messagede Markerror » 21 Avr 2017 21:40

Merci ! Bon, le mystère s'épaissit, les deux sources produisent le même code. Une nuit de sommeil apportera sûrement conseil :-).
Markerror
 
Messages: 1153
Inscription: 31 Oct 2011 20:21
Localisation: Orléans

Re: [VG-5000] création d'une cartouche ROM

Messagede 6502man » 21 Avr 2017 22:22

Curieux, n'y aurait il pas inversion des adresses registres et datas :roll:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
 
Messages: 8103
Inscription: 12 Avr 2007 22:46
Localisation: VAR

Re: [VG-5000] création d'une cartouche ROM

Messagede 6502man » 21 Avr 2017 22:35

J'ai écrit une bêtise précédemment concernant la compatibilité de cette cartouche avec la VG5216 :oops:

En fait la cartouche est compatible avec la VG5216, en connectant la VG5216 derrière la cartouche.

Pour m'en assurer je ferais le test soit demain soit lundi ....
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
 
Messages: 8103
Inscription: 12 Avr 2007 22:46
Localisation: VAR

Re: [VG-5000] création d'une cartouche ROM

Messagede 6502man » 22 Avr 2017 10:06

Je viens de faire le test avec la cartouche ROM et la VG5216, ca fonctionne très bien le VG5000 affiche 30xxx octets au boot :wink:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
 
Messages: 8103
Inscription: 12 Avr 2007 22:46
Localisation: VAR

Re: [VG-5000] création d'une cartouche ROM

Messagede Carl » 22 Avr 2017 10:28

Phil,

Les configurations possibles sont celles-ci ?

VG5000 > VG5301 > VG5216 > VU0031

VG5000> VG5301 > VG5232
Avatar de l’utilisateur
Carl
Modérateur
 
Messages: 9502
Inscription: 08 Avr 2007 13:21
Localisation: www.dole.org

PrécédenteSuivante

Retourner vers Bricolage et restauration

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités