[SDMOTO] fusion SDBOOT + demonstration SD
Modérateurs : Papy.G, fneck, Carl
Re: [SDMOTO] fusion SDBOOT + demonstration SD
En testant un nouveau bricolage dont je parlerai bientôt, j'ai essayé les démos de musique sur MO5 avec l'interface SDMO. Elles ne se lancent pas.
Celles que j'ai refaites récemment (Annees80 et Elvis) fonctionnent :
- Sur TO avec SDMOTO (et contrôleur CS91-280 banque 0)
- Sur MO avec SDMOTO (et contrôleur CS91-280 banque 0)
- Sur MO avec SDMO (et contrôleur CS91-280 banque 1)
De même la dernière version de la vidéo Simon's Cat fonctionne sur les trois plateformes.
Je n'ai pas encore cherché le problème dans Sade, William Sheller, AC-DC, Sandra, etc., mais c'est sûrement un tout petit détail. Je voudrais que toutes les nouvelles productions utilisant la carte SD fonctionnent indifféremment dans tous les cas de figure, pour simplifier les démos et éviter d'avoir à gérer plusieurs versions.
Celles que j'ai refaites récemment (Annees80 et Elvis) fonctionnent :
- Sur TO avec SDMOTO (et contrôleur CS91-280 banque 0)
- Sur MO avec SDMOTO (et contrôleur CS91-280 banque 0)
- Sur MO avec SDMO (et contrôleur CS91-280 banque 1)
De même la dernière version de la vidéo Simon's Cat fonctionne sur les trois plateformes.
Je n'ai pas encore cherché le problème dans Sade, William Sheller, AC-DC, Sandra, etc., mais c'est sûrement un tout petit détail. Je voudrais que toutes les nouvelles productions utilisant la carte SD fonctionnent indifféremment dans tous les cas de figure, pour simplifier les démos et éviter d'avoir à gérer plusieurs versions.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7923
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [SDMOTO] fusion SDBOOT + demonstration SD
Quand tu dis que ca ne marche pas, tu veux dire que le fichier SD n'est pas reconnu, ou qu'il est reconnu se lance, plante, ou est reconnu, se lance mais le son est pourri ou carrément autre chose ?
En principe tous les SD que j'ai fait utilisent les 2560 premiers ko de elvis.sd comme fichier SD d'amorce. C'est une version de elvis.sd modifiée pour jouer les échantillons tous les 181cycles pour être au plus proche de 5512hz et qui a été formatée pour tenir sur les 40cols de mon écran TO. J'ai peut-être mal recopié.
En principe tous les SD que j'ai fait utilisent les 2560 premiers ko de elvis.sd comme fichier SD d'amorce. C'est une version de elvis.sd modifiée pour jouer les échantillons tous les 181cycles pour être au plus proche de 5512hz et qui a été formatée pour tenir sur les 40cols de mon écran TO. J'ai peut-être mal recopié.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [SDMOTO] fusion SDBOOT + demonstration SD
J'ai l'impression que les données ne sont pas cherchées à la bonne adresse de la carte SD : au lieu d'afficher l'image, l'écran reste blanc. On entend le "toc" d'initialisation du CNA en sortie, mais aucun son n'est joué. Je vais essayer de trouver avec dcmoto, parce que le debuggage sur MO5 n'est pas un sport très facile.
A priori le fichier SDPLAY.BAS de lancement est le même pour Annees80, Elvis, et les nouvelles démos de __sam__, le problème doit être dans SDPLAY.BIN, c'est le seul programme modifié.
A priori le fichier SDPLAY.BAS de lancement est le même pour Annees80, Elvis, et les nouvelles démos de __sam__, le problème doit être dans SDPLAY.BIN, c'est le seul programme modifié.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [SDMOTO] fusion SDBOOT + demonstration SD
Trouvé !!!
Les démos de musique de __sam__ sont basées sur une ancienne version de sdplay, avant l'ajout de la compatibilité SDMO en version 2015.01.20. Il est donc normal qu'elles ne fonctionnent pas avec SDMO.
Ci-dessous ma dernière version de SDPLAY :
Les démos de musique de __sam__ sont basées sur une ancienne version de sdplay, avant l'ajout de la compatibilité SDMO en version 2015.01.20. Il est donc normal qu'elles ne fonctionnent pas avec SDMO.
Ci-dessous ma dernière version de SDPLAY :
Code : Tout sélectionner
/**************************************************\
* S D P L A Y *
* (c) 2015 - Daniel Coulom *
* http://dcmoto.free.fr/ *
* http://forum.system-cfg.com/ *
*--------------------------------------------------*
* Ce code est distribue gratuitement dans l'espoir *
* qu'il sera utile, mais sans aucune garantie et *
* sans engager la responsabilité de l'auteur. *
* Vous pouvez l' utiliser, le modifier et le *
* diffuser librement, en conservant cette licence *
* et les références de l'auteur dans toutes les *
* copies. L'exploitation commerciale est interdite.*
\**************************************************/
* Ce programme utilise l'interface SDMOTO ou SDMO
* associee au controleur CS91-280 pour jouer de la
* musique en streaming.
* Il réalise les fonctions suivantes pour TO ou MO:
* - affichage d'une image monochrome (16 blocs)
* - envoi sur le CNA de musique 5586Hz 6 bits
* L'adresse en parametre de la commande CMD18
* doit être initialisee en $9E03-$9E06
*
* Utilisation du 2eme port joystick avec SDMOTO
* Port A $A7CC (pour les MO) ou $E7CC (pour les TO)
* PA5 en sortie --> SD Clock SCK DB9 pin 2
* PA6 en sortie --> SD Data IN MOSI DB9 pin 3
* PA7 en entree <-- SD Data OUT MISO DB9 pin 4
*
* Utilisation port magnetophone avec SDMO
* Port A $A7C0 pour les donnees
* PA6 en sortie --> SD Data IN MOSI DB9 pin 3
* PA7 en entree <-- SD Data OUT MISO DB9 pin 4
* Port B $A7C2 pour l'horloge
* PA3 en sortie --> SD Clock SCK DB9 pin 2
/**************************************************\
* Version 2015.02.01 *
\**************************************************/
* Historique
* 2015.02.01 correction du test SDMO/SDMOTO
* 2015.01.20 ajout de la compatibilite SDMO
* 2015.01.16 periode de 179 cycles (5586,59 Hz)
* 2015.01.16 reorganisation et optimisation du code
* 2015.01.15 CLRA après lecture CRC2 pour test $FE
* 2015.01.15 ajout du depilage PC si sortie FIN
* 2015.01.14 passage à 32 octets supplémentaires
* 2014.08.07 correction bug (STA FIN1+1 et pas FIN+1)
* 2014.08.06 masquage des interruptions
* 2014.07.13 adaptation automatique pour MO ou TO
* 2014.02.06 correction bug : initialiser U pour CMD12
* 2014.02.06 correction bug : ajout CC dans PULS final
* 2013.12.30 ajout initialisation PIA pour carte SD
* 2013.10.21 ajout initialisation du CNA en sortie
* 2013.10.19 saisie manuelle de l'adresse pour CMD18
* 2013.10.19 indirection vers EXCMD en $A028
* 2013.10.18 premiere version avec controleur CS91-280
*------------------------------------------------------
* DEBUT DU PROGRAMME
*------------------------------------------------------
ORG $9E00
BRA INIT initialisations
*------------------------------------------------------
* FONCTIONS D'ACCES A LA CARTE SD
*------------------------------------------------------
CMD18
FCB $52 read multiple block
FDB $0000 adresse bloc (poids fort)
FDB $0000 adresse bloc (poids faible)
FCB $FF checksum non testee
FCB $00 code retour attendu
CMD12
FCB $4C stop transmission
FDB $0000 dummy parameter
FDB $0000 dummy parameter
FCB $FF checksum non testee
FCB $00 code retour attendu
*------------------------------------------------------
* Initialisations et execution CMD18 = Read-Multiple-Block
*------------------------------------------------------
INIT
PSHS U,Y,X,DP,B,A,CC sauvegarde des registres du Basic
ORCC #$50
LDX #$1F40 adresse pour test RAM ou ROM
LDB ,X lecture adresse X
COM ,X tente de modifier adresse X
CMPB ,X test modification adresse X
BEQ INIT1 pas de difference -> TO
COM ,X retablissement adresse X
LDA #$A7 valeur initialisation DP pour MO
* Initialisation pour l'interface SDMO
* le test suivant doit être revu en fonction
* de la version de l'EPROM du controleur CS81-280
TST $A700 test CS91-280 en mode SDMOTO
BEQ INIT2 CS91-280 en mode SDMOTO
LBSR RBSDMO modification routine RBYTE
BRA INIT2 suite des initialisations
INIT1
LDY #$4000 adresse de debut d'ecran
STY DISPLAY+1 initialisation adresse ecran
LDA #$E0 valeur adresse EXCMD (poids fort)
STA READ+1 pour execution CMD18
STA FIN+4 pour execution CMD12
LDA #$E7 valeur initialisation DP pour TO
INIT2
TFR A,DP initialisation DP
* Initialisation PIA pour SDMOTO
LDA <$CE lecture registre de controle A
ANDA #$FB raz bit 2
STA <$CE selection DDRA
LDB #$60 set bits 5 et 6
STB <$CC bits MOSI et CLOCK en sortie
ORA #$04 set b2
STA <$CE selection PA
* Initialisation CNA en sortie
LDA <$CF lecture registre de controle B
ANDA #$FB raz bit 2
STA <$CF selection DDRB
LDB #$3F set bits 0-5
STB <$CD bits CNA en sortie
ORA #$04 set b2
STA <$CF selection PB
* Lancement de la commande CMD18
LDU #CMD18 adresse commande CMD18
READ
JSR $A028 EXCMD = execution commande
* modifie en $E028 pour TO
*------------------------------------------------------
* Affichage de l'image
*------------------------------------------------------
DISPLAY
LDU #$0000 adresse memoire video
LDY #$0010 nombre de blocs a lire
DISPL1
LBSR RBYTE lecture d'un octet
CMPA #$FE test debut de bloc
BNE DISPL1 attente debut de bloc
LDX #$0200 nombre d'octets a lire
DISPL2
LBSR RBYTE lecture d'un octet
STA ,U+ affichage
LEAX -1,X decrementation compteur
BNE DISPL2 lecture octet suivant
LBSR RBYTE lecture CRC1
LBSR RBYTE lecture CRC2
LEAY -1,Y decrementation compteur
BNE DISPL1 lecture bloc suivant
BRA PLAY
*------------------------------------------------------
* ARRET DE LA LECTURE ET RETOUR AU BASIC
*------------------------------------------------------
FIN
LDU #CMD12 adresse commande CMD12
JSR $A028 EXCMD = execution commande CMD12
* FIN+4 modifie en $E028 pour TO
PULS B depile compteur octets supplementaires
PULS CC,A,B,DP,X,Y,U,PC
*------------------------------------------------------
* Joue 2 octets et recupere 1 bit dans le premier
* avec test de fin sur le bit 7 de l'echantillon
* periode = 179 microsecondes
* decompte des cycles avec le BSR et le RTS :
* avant le premier echantillon : 7+158=165
* entre les deux echantillons : 4+2+6+6+158+3=179
* apres le deuxieme echantillon : 4+5+5=14
* 14(apres le deuxieme)+165(avant le prochain)=179
*------------------------------------------------------
PLAY2
* premier octet 158+4+2+6+6=176
LBSR RBYTE lecture echantillon (158)
STA <$CD envoi de l'echantillon (4)
ASLA b7 dans carry (2)
ROL ,X stockage b7 (6)
NOP temporisation (2)
NOP temporisation (2)
NOP temporisation (2)
* deuxieme octet 158+3+4+5+5=175 (+7 pour BSR)
LBSR RBYTE lecture echantillon (158)
* test de fin
BPL PLAY21 pas d'octet fin de fichier (3)
LDX #FIN adresse routine de FIN
STX ,S pour retour en FIN
PLAY21
STA <$CD envoi de l'echantillon (4)
LBRN $FFFF temporisation (5)
RTS retour (5)
*------------------------------------------------------
* Lecture de la musique
*------------------------------------------------------
PLAY
LEAU $E000,U adresse ecran = fin - $2000
LEAX $23,U adresse haute buffer ecran
LDB #$20 compteur octets supplementaires
PSHS B empilage compteur
*------------------------------------------------------
* Attente debut de bloc
*------------------------------------------------------
PLAY0
LBSR RBYTE lecture d'un octet
CMPA #$FE test debut de bloc
BNE PLAY0 attente debut de bloc
*------------------------------------------------------
* Boucle de lecture d'un bloc
*------------------------------------------------------
PLAY1
BSR PLAY2 joue 2 octets, stocke 1 bit
BSR PLAY2 joue 2 octets, stocke 1 bit
BSR PLAY2 joue 2 octets, stocke 1 bit
BSR PLAY2 joue 2 octets, stocke 1 bit
BSR PLAY2 joue 2 octets, stocke 1 bit
BSR PLAY2 joue 2 octets, stocke 1 bit
BSR PLAY2 joue 2 octets, stocke 1 bit
* joue 2 octets, complete l'octet supplementaire
LBRN $FFFF temporisation (5)
NOP temporisation (2)
LBSR RBYTE lecture echantillon (158)
STA <$CD envoi de l'echantillon (4)
ASLA b7 dans carry (2)
ROL ,X stockage b7 (6)
LEAX -1,X modifie pointeur octet sup (5)
NOP temporisation (2)
NOP temporisation (2)
LBSR RBYTE lecture echantillon (158)
STA <$CD envoi de l'echantillon (4)
DEC ,S compteur octets supplement. (6)
BNE PLAY1 boucle suivante (3)
*------------------------------------------------------
* Lecture des octets de CRC
*------------------------------------------------------
* premier octet CRC 158+3+5+4+5+2+2=179
LBSR RBYTE lecture octet CRC (158)
LDD #$0000 initialise A pour test $FE (3)
LDB 1,X chargement echantillon sup. (5)
STB <$CD envoi de l'echantillon 1 (4)
LEAX 2,X incremente pointeur oct sup (5)
NOP temporisation (2)
NOP temporisation (2)
* deuxieme octet CRC 158+2+6+4=170
LBSR RBYTE lecture octet CRC (158)
CLRA initialise A pour test $FE (2)
LDB ,X+ chargement echantillon sup. (6)
STB <$CD envoi de l'echantillon 2 (4)
*------------------------------------------------------
* Lecture des octets inter-blocs pendant l'envoi
* des echantillons supplementaires
*------------------------------------------------------
* Echantillon supplementaire n°3 (2+4+161+6+2+4=179)
LDB #$20 compteur echantillons sup. (2)
STB ,S stocke le compteur (4)
BSR INTER lecture octet inter-blocs (161)
LDB ,X+ chargement echantillon (6)
NOP temporisation (2)
STB <$CD envoi de l'echantillon 3 (4)
* Echantillons supplementaires 4 a 32
LDY #$001D compteur pour 29 boucles (4)
NOP temporisation (2)
NOP temporisation (2)
* La boucle SUPP s'execute en 161+6+4+5+3=179 cycles
SUPP
BSR INTER lecture octet inter-blocs (161)
LDB ,X+ chargement echantillon (6)
STB <$CD envoi de l'echantillon (4)
LEAY -1,Y decremente le compteur (5)
BNE SUPP nouvelle boucle (3)
* Preparation de la lecture du bloc suivant
LEAX -1,X retablit pointeur (5)
CMPA #$FE test début de bloc (2)
BEQ PLAY1 traitement du bloc suivant (3)
BRA PLAY0 attente octet $FE (3)
*------------------------------------------------------
* LIRE UN OCTET INTER-BLOCS SI NECESSAIRE
* Total avec BSR : 7+2+3+144+5=161
*------------------------------------------------------
INTER
CMPA #$FE test debut de bloc (2)
BNE RBYTE lecture octet inter-blocs (3)
*------------------------------------------------------
* Temporisation 149 cycles (equivalent RBYTE + RTS)
* boucle de temporisation : 28x5=140 cycles
* total : 2+140+2+5= 149
*------------------------------------------------------
LDB #$1C compteur de boucles (2)
TEMPO
DECB decremente le compteur (2)
BNE TEMPO nouvelle boucle (3)
NOP temporisation (2)
RTS (5)
*------------------------------------------------------
* LECTURE D'UN OCTET AVEC SDMOTO
* Le registre B n'est pas preserve
* Valeur de l'octet dans le registre A en sortie
*------------------------------------------------------
RBYTE
* premier bit
LDB #$7F Valeur pour test bit 7 (2)
CMPB <$CC PA b7 (bit lu) -> carry (4)
STB <$CC clock high, di high (4)
LDB #$5F clear bit 5 (2)
STB <$CC clock low, di high (4)
ROLA C (bit lu) -> b0 reg A (2)
* deuxieme bit
LDB #$7F Valeur pour test bit 7 (2)
CMPB <$CC PA b7 (bit lu) -> carry (4)
STB <$CC clock high, di high (4)
LDB #$5F clear bit 5 (2)
STB <$CC clock low, di high (4)
ROLA C (bit lu) -> b0 reg A (2)
* troisieme bit
LDB #$7F Valeur pour test bit 7 (2)
CMPB <$CC PA b7 (bit lu) -> carry (4)
STB <$CC clock high, di high (4)
LDB #$5F clear bit 5 (2)
STB <$CC clock low, di high (4)
ROLA C (bit lu) -> b0 reg A (2)
* quatrieme bit
LDB #$7F Valeur pour test bit 7 (2)
CMPB <$CC PA b7 (bit lu) -> carry (4)
STB <$CC clock high, di high (4)
LDB #$5F clear bit 5 (2)
STB <$CC clock low, di high (4)
ROLA C (bit lu) -> b0 reg A (2)
* cinquieme bit
LDB #$7F Valeur pour test bit 7 (2)
CMPB <$CC PA b7 (bit lu) -> carry (4)
STB <$CC clock high, di high (4)
LDB #$5F clear bit 5 (2)
STB <$CC clock low, di high (4)
ROLA C (bit lu) -> b0 reg A (2)
* sixieme bit
LDB #$7F Valeur pour test bit 7 (2)
CMPB <$CC PA b7 (bit lu) -> carry (4)
STB <$CC clock high, di high (4)
LDB #$5F clear bit 5 (2)
STB <$CC clock low, di high (4)
ROLA C (bit lu) -> b0 reg A (2)
* septieme bit
LDB #$7F Valeur pour test bit 7 (2)
CMPB <$CC PA b7 (bit lu) -> carry (4)
STB <$CC clock high, di high (4)
LDB #$5F clear bit 5 (2)
STB <$CC clock low, di high (4)
ROLA C (bit lu) -> b0 reg A (2)
* huitieme bit
LDB #$7F Valeur pour test bit 7 (2)
CMPB <$CC PA b7 (bit lu) -> carry (4)
STB <$CC clock high, di high (4)
LDB #$5F clear bit 5 (2)
STB <$CC clock low, di high (4)
ROLA C (bit lu) -> b0 reg A (2)
*
RTS retour (octet dans A) (5)
* longueur totale avec BSR: 7 + 18*8 + 5 = 156
* avec LBSR: 9 + 18*8 + 5 = 158
*------------------------------------------------------
* LECTURE D'UN OCTET AVEC SDMO
* Le registre B n'est pas preserve
* Valeur de l'octet dans le registre A en sortie
*------------------------------------------------------
RBYTEMO
* premier bit
LDB #$7F Valeur pour test bit 7 (2)
STB <$C2 clock high (4)
CMPB <$C0 PA b7 (bit lu) -> carry (4)
LDB #$36 clear bit 3 (2)
STB <$C2 clock low (4)
ROLA C (bit lu) -> b0 reg A (2)
* deuxieme bit
LDB #$7F Valeur pour test bit 7 (2)
STB <$C2 clock high (4)
CMPB <$C0 PA b7 (bit lu) -> carry (4)
LDB #$36 clear bit 3 (2)
STB <$C2 clock low (4)
ROLA C (bit lu) -> b0 reg A (2)
* troisieme bit
LDB #$7F Valeur pour test bit 7 (2)
STB <$C2 clock high (4)
CMPB <$C0 PA b7 (bit lu) -> carry (4)
LDB #$36 clear bit 3 (2)
STB <$C2 clock low (4)
ROLA C (bit lu) -> b0 reg A (2)
* quatrieme bit
LDB #$7F Valeur pour test bit 7 (2)
STB <$C2 clock high (4)
CMPB <$C0 PA b7 (bit lu) -> carry (4)
LDB #$36 clear bit 3 (2)
STB <$C2 clock low (4)
ROLA C (bit lu) -> b0 reg A (2)
* cinquieme bit
LDB #$7F Valeur pour test bit 7 (2)
STB <$C2 clock high (4)
CMPB <$C0 PA b7 (bit lu) -> carry (4)
LDB #$36 clear bit 3 (2)
STB <$C2 clock low (4)
ROLA C (bit lu) -> b0 reg A (2)
* sixieme bit
LDB #$7F Valeur pour test bit 7 (2)
STB <$C2 clock high (4)
CMPB <$C0 PA b7 (bit lu) -> carry (4)
LDB #$36 clear bit 3 (2)
STB <$C2 clock low (4)
ROLA C (bit lu) -> b0 reg A (2)
* septieme bit
LDB #$7F Valeur pour test bit 7 (2)
STB <$C2 clock high (4)
CMPB <$C0 PA b7 (bit lu) -> carry (4)
LDB #$36 clear bit 3 (2)
STB <$C2 clock low (4)
ROLA C (bit lu) -> b0 reg A (2)
* huitieme bit
LDB #$7F Valeur pour test bit 7 (2)
STB <$C2 clock high (4)
CMPB <$C0 PA b7 (bit lu) -> carry (4)
LDB #$36 clear bit 3 (2)
STB <$C2 clock low (4)
ROLA C (bit lu) -> b0 reg A (2)
*
RTS retour (octet dans A) (5)
* longueur totale avec BSR: 7 + 18*8 + 5 = 156
* avec LBSR: 9 + 18*8 + 5 = 158
*------------------------------------------------------
* REMPLACEMENT DE LA ROUTINE RBYTE POUR SDMOTO
* PAR LA ROUTINE RBYTEMO POUR SDMO
*------------------------------------------------------
RBSDMO
LDY #RBYTEMO adresse routine SDMO
LDX #RBYTE adresse routine RBYTE
RBSDMO1
LDB ,Y+ lecture routine SDMO
STB ,X+ ecriture routine RBYTE
CMPX #RBYTEMO test de fin
BNE RBSDMO1 nouvelle boucle
RTS retour
END
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7923
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [SDMOTO] fusion SDBOOT + demonstration SD
Le code source est sur la D7. Normalement j'ai pas modifié les adresses qui se trouvent au début du bin.
[EDIT] Effectivement, je m'étais basé sur la version 2015.01.16 qui était la toute dernière que j'avais récupéré. Je n'avait même pas fais gaffe qu'il y ait une version plus récente. Tu as du voir cela très tôt en listant l'en-tête reformaté en 40 cols. (obligé car sinon tout ce qui dépasse 40 cols est perdu dans l'assembler TO.)
[EDIT] Effectivement, je m'étais basé sur la version 2015.01.16 qui était la toute dernière que j'avais récupéré. Je n'avait même pas fais gaffe qu'il y ait une version plus récente. Tu as du voir cela très tôt en listant l'en-tête reformaté en 40 cols. (obligé car sinon tout ce qui dépasse 40 cols est perdu dans l'assembler TO.)
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [SDMOTO] fusion SDBOOT + demonstration SD
Pas facile, la gestion des versions. A peine j'en diffuse une qu'il y en a une ou deux autres en chantier. Et sur le site dcmoto il y a un vaste échantillon des programmes, depuis 2012. Je ne suis même pas sûr que tous fonctionnent encore avec les nouvelles versions de l'EPROM. Je me console en disant que c'est au moins la preuve que le système progresse. Dans les deux dernières années il y a eu des progrès considérables, et toutes les anomalies ont été corrigées, ou au moins identifiées.
J'ai encore en projet une nouvelle version de l'EPROM avec une signature différente pour SDMOTO et SDMO, afin que les programmes puissent savoir quelle interface est utilisée. Aujourd'hui je teste $A700/$E700 à zéro pour DCMOTO et différent de zéro pour SDMO, mais c'est très mauvais car à la moindre modification le test peut changer.
J'ai encore en projet une nouvelle version de l'EPROM avec une signature différente pour SDMOTO et SDMO, afin que les programmes puissent savoir quelle interface est utilisée. Aujourd'hui je teste $A700/$E700 à zéro pour DCMOTO et différent de zéro pour SDMO, mais c'est très mauvais car à la moindre modification le test peut changer.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7923
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [SDMOTO] fusion SDBOOT + demonstration SD
C'est certain: un programme qui n'évolue plus est un programme mort.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
-
- Messages : 7923
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [SDMOTO] fusion SDBOOT + demonstration SD
Daniel, sur la page http://dcmoto.free.fr/programmes/sdmoto ... index.html je ne trouve pas cette version, uniquement celle du 16 janvier. Normalement, on peut trouver la dernière version à quelle adresse ?Daniel a écrit :Ci-dessous ma dernière version de SDPLAY :
Code : Tout sélectionner
* Historique * 2015.02.01 correction du test SDMO/SDMOTO * 2015.01.20 ajout de la compatibilite SDMO * 2015.01.16 periode de 179 cycles (5586,59 Hz)
Par ailleurs, comment peut on tester l'interface SDMO sur émulateur ? Le fichier ELVIS.SD ne contient pas DOS pour MO5 il me semble.
Dernière modification par __sam__ le 15 févr. 2015 18:14, modifié 1 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [SDMOTO] fusion SDBOOT + demonstration SD
Oui, c'est entièrement de ma faute, j'ai oublié d'uploader le programme après mise à jour.
Je viens de le faire pour sdmoto-elvis et sdmoto-annees80 (c'est le même programme).
Il faut peut-être vider le cache pour être sûr de télécharger la dernière version.
Sinon, j'ai posté le code source de cette dernière version 5 posts plus haut.
Je viens de le faire pour sdmoto-elvis et sdmoto-annees80 (c'est le même programme).
Il faut peut-être vider le cache pour être sûr de télécharger la dernière version.
Sinon, j'ai posté le code source de cette dernière version 5 posts plus haut.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7923
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [SDMOTO] fusion SDBOOT + demonstration SD
J'ai reporté les modifs sur la version de ELVIS.SD modifiée 181cycles. Ca marche avec SDMOTO. Comment tester pour SDMO ?
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [SDMOTO] fusion SDBOOT + demonstration SD
Pour tester SDPLAY avec l'interface SDMO, il faut :
- Un MO5
- Le contrôleur CS91-280 avec le switch 7 positionné sur la banque 1
- Un doubleur de bus
- Un contrôleur musique et jeux
- L'interface SDMO connectée au port magnétophone
Mais il n'y a pas trop de suspens, ça marche forcément sauf énorme bêtise. Si tu m'envoies les fichiers SDPLAY.ASM et SDPLAY.BIN je peux mettre à jour tous tes fichiers .sd de musique et les essayer chez moi.
- Un MO5
- Le contrôleur CS91-280 avec le switch 7 positionné sur la banque 1
- Un doubleur de bus
- Un contrôleur musique et jeux
- L'interface SDMO connectée au port magnétophone
Mais il n'y a pas trop de suspens, ça marche forcément sauf énorme bêtise. Si tu m'envoies les fichiers SDPLAY.ASM et SDPLAY.BIN je peux mettre à jour tous tes fichiers .sd de musique et les essayer chez moi.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7923
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [SDMOTO] fusion SDBOOT + demonstration SD
Ok, il faut une machine physique. Mais comment fais tu pour booter le DOS depuis le MO5 sachant que le fichier de musique SD ne le contient pas ? Tu pré-charges le player basic et binaire depuis la K7 ?
Dans tous les cas voici un ZIP qui contient le code ASM que j'utilise sous assembler v3 ainsi que le fichier BIN correspondant.
Dans tous les cas voici un ZIP qui contient le code ASM que j'utilise sous assembler v3 ainsi que le fichier BIN correspondant.
- Pièces jointes
-
- sdplay.zip
- (5.15 Kio) Téléchargé 114 fois
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [SDMOTO] fusion SDBOOT + demonstration SD
Sur la carte SD j'ai un fichier boot.sd contenant le DOS MO5 et le programme SDSEL.
A la mise sous tension le contrôleur CS91-280 monte le fichier boot.sd. Le MO5 charge le DOS et lance ensuite SDSEL grâce à un AUTO.BAT. J'obtiens ainsi la liste des fichiers de la carte, je sélectionne le fichier de musique et je lance le programme par RUN"AUTO.BAT".
Si le DOS est chargé, il reste en mémoire jusqu'au prochain hardreset. Avec le MO5, seule la commande "DOS" ou la mise hors-tension provoque le hardreset. On peut donc changer le fichier .sd sans recharger le DOS, il suffit qu'il soit sur le fichier .sd de boot.
A la mise sous tension le contrôleur CS91-280 monte le fichier boot.sd. Le MO5 charge le DOS et lance ensuite SDSEL grâce à un AUTO.BAT. J'obtiens ainsi la liste des fichiers de la carte, je sélectionne le fichier de musique et je lance le programme par RUN"AUTO.BAT".
Si le DOS est chargé, il reste en mémoire jusqu'au prochain hardreset. Avec le MO5, seule la commande "DOS" ou la mise hors-tension provoque le hardreset. On peut donc changer le fichier .sd sans recharger le DOS, il suffit qu'il soit sur le fichier .sd de boot.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7923
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [SDMOTO] fusion SDBOOT + demonstration SD
Et sous DCMOTO c'est le même genre de manip je présume: Boot sur un SD contenant le dos MO5, reset à chaud, changement de SD, et boot sur elvis.sd ?
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [SDMOTO] fusion SDBOOT + demonstration SD
Oui, c'est exactement ça.
Sur MO5, on a le choix entre les deux interfaces :
- SDMOTO : sélectionner le contrôleur CS91-280 dans les options et cocher Interface SDMOTO dans "Supports amovibles"
- SDMO : sélectionner le contrôleur CS91-281 dans les options et cocher Interface SDMO dans "Supports amovibles"
Dans les options, CS91-280 charge la banque 0 de l'EPROM du contrôleur et CS91-281 charge la banque 1.
C'est l'équivalent du switch 7 du boîtier nanoréseau : ON = banque 0, OFF = banque 1.
J'ai testé la nouvelle version de SDPLAY. Dans le fichier SDPLAY.BIN il manque l'adresse d'exécution dans les 4 derniers octets. Je l'ai ajoutée ($9E00), et j'ai refait les 9 fichiers .sd de musique. Tout fonctionne bien sur mon MO5 à contrôleur CS91-280 interne, avec l'interface SDMO sur port magnétophone et le contrôleur SX90-018 pour l'extension musique.
C'est appréciable d'avoir un seul fichier .sd compatible MO et TO et aussi SDMO et SDMOTO. Je souhaite en faire une règle pour toutes les nouvelles démos, ce sera beaucoup plus simple qu'une version différente pour chaque configuration, et pas très compliqué à programmer.
Aujourd'hui le test de la banque 0 ou 1 du contrôleur CS91-280 n'est pas bon : je teste l'octet $A700/$E700 à zéro pour la banque 0, mais ça peut changer à chaque nouvelle version. La nouvelle norme sera celle-ci :
- La banque 0 du contrôleur CS91-280 contiendra $B0 en $A76F/$E76F
- La banque 1 du contrôleur CS91-280 contiendra $B1 en $A76F/$E76F
Ce n'est pas encore le cas dans les versions de l'EPROM jusqu'à 2014.12.28, ne pas appliquer cette méthode avant la prochaine release.
Sur MO5, on a le choix entre les deux interfaces :
- SDMOTO : sélectionner le contrôleur CS91-280 dans les options et cocher Interface SDMOTO dans "Supports amovibles"
- SDMO : sélectionner le contrôleur CS91-281 dans les options et cocher Interface SDMO dans "Supports amovibles"
Dans les options, CS91-280 charge la banque 0 de l'EPROM du contrôleur et CS91-281 charge la banque 1.
C'est l'équivalent du switch 7 du boîtier nanoréseau : ON = banque 0, OFF = banque 1.
J'ai testé la nouvelle version de SDPLAY. Dans le fichier SDPLAY.BIN il manque l'adresse d'exécution dans les 4 derniers octets. Je l'ai ajoutée ($9E00), et j'ai refait les 9 fichiers .sd de musique. Tout fonctionne bien sur mon MO5 à contrôleur CS91-280 interne, avec l'interface SDMO sur port magnétophone et le contrôleur SX90-018 pour l'extension musique.
C'est appréciable d'avoir un seul fichier .sd compatible MO et TO et aussi SDMO et SDMOTO. Je souhaite en faire une règle pour toutes les nouvelles démos, ce sera beaucoup plus simple qu'une version différente pour chaque configuration, et pas très compliqué à programmer.
Aujourd'hui le test de la banque 0 ou 1 du contrôleur CS91-280 n'est pas bon : je teste l'octet $A700/$E700 à zéro pour la banque 0, mais ça peut changer à chaque nouvelle version. La nouvelle norme sera celle-ci :
- La banque 0 du contrôleur CS91-280 contiendra $B0 en $A76F/$E76F
- La banque 1 du contrôleur CS91-280 contiendra $B1 en $A76F/$E76F
Ce n'est pas encore le cas dans les versions de l'EPROM jusqu'à 2014.12.28, ne pas appliquer cette méthode avant la prochaine release.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.