SDMOTO : nouvelle démo
Modérateurs : Papy.G, fneck, Carl
Re: SDMOTO : nouvelle démo
Je n'ai pas réussi à trouver les démos Thomson en compétition (sauf celle de Pulkomandy), ni sur le site de Puls, ni ailleurs. Peut-on les télécharger quelque part ?
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: SDMOTO : nouvelle démo
Bonsoir,
S'il y a eu d'autres demos Thomson à cette party, elles devraient arriver sur Pouet tôt ou tard. Je viens de regarder sur Dcmoto la production de Shinra, c'est tout mignon (très joli plasma et graphismes excellents). Pas de son, je suppose que hélas, c'est normal. Je n'ai jamais compris pourquoi les Thomson n'avaient pas de processeur sonore digne de ce nom, ça apportait beaucoup mine de rien...
S'il y a eu d'autres demos Thomson à cette party, elles devraient arriver sur Pouet tôt ou tard. Je viens de regarder sur Dcmoto la production de Shinra, c'est tout mignon (très joli plasma et graphismes excellents). Pas de son, je suppose que hélas, c'est normal. Je n'ai jamais compris pourquoi les Thomson n'avaient pas de processeur sonore digne de ce nom, ça apportait beaucoup mine de rien...
-
- Messages : 7964
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: SDMOTO : nouvelle démo
Normalement il y a du son, mais il faut que la synthèse vocale MAE soit activée. J'ai bien trouvé la coche sous DCMoto mais il est grisé.
Sinon, si tu veux du son et de l'action, il y a mon Intro 1K qui est arrivée 2ème...
@Daniel Les démos seront publiée ASAP (une fois les bugs résiduels corrigés pour ma part). A ce propos j'ai un résultat bizarre en emul TO7 et TO9 sous DCMOTO. Lors des appels à $E010 (RECFI, recherche fichier); le contrôleur retourne un code indiquant qu'il est en basse densité et ne lit que 4 fichiers par entrée catalogue. Le hic est que contrôleur est initialisé en haute densité et retourne même des secteurs de 256 octets. Cela ne se produit pas en émulation de TO8 et TO9+. Par ailleurs sous MESS (pour le TO7) et Tomix (pour le TO9) le même code inchangé marche correctement et RECFI lit bien 8 fichiers par entrée catalogue. Mon hypothèse est que les points d'entrée du minidos pour TO7 et TO9 ne sont pas complètement patchés par l'émul. Est-ce possible?
Sinon, si tu veux du son et de l'action, il y a mon Intro 1K qui est arrivée 2ème...
@Daniel Les démos seront publiée ASAP (une fois les bugs résiduels corrigés pour ma part). A ce propos j'ai un résultat bizarre en emul TO7 et TO9 sous DCMOTO. Lors des appels à $E010 (RECFI, recherche fichier); le contrôleur retourne un code indiquant qu'il est en basse densité et ne lit que 4 fichiers par entrée catalogue. Le hic est que contrôleur est initialisé en haute densité et retourne même des secteurs de 256 octets. Cela ne se produit pas en émulation de TO8 et TO9+. Par ailleurs sous MESS (pour le TO7) et Tomix (pour le TO9) le même code inchangé marche correctement et RECFI lit bien 8 fichiers par entrée catalogue. Mon hypothèse est que les points d'entrée du minidos pour TO7 et TO9 ne sont pas complètement patchés par l'émul. Est-ce possible?
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 : nouvelle démo
Oui, des lacunes dans l'émulation du contrôleur de disquette sont très vraisemblables. J'ai patché essentiellement la lecture et écriture d'un secteur, et le formatage. Je me disais que les autres fonctions devaient toujours finir par une lecture ou une écriture de secteur, mais c'est probablement un raisonnement trop simpliste. Je regarde le problème dès que possible.
Il y a longtemps que je veux émuler la synthèse vocale dans dcmoto. Antoine m'a passé son code, j'ai même commencé à modifier dcmoto pour l'intégrer, mais je n'ai pas encore eu le temps ni le courage d'aller au bout. Ce n'est finalement pas si simple car il faut faire du multi-thread, exactement comme dans dcexel pour émuler les Exeldrums. Ca viendra probablement un jour, mais je ne fais pas de prévisions.
[Edit - 19/03/2013 11:00]
Un examen rapide du code en ROM TO9 montre que l'erreur de la fonction d'ouverture de fichier semble venir du bit 7 du registre $E7D8. Dans dcmoto j'ai positionné ce bit à 1 pour éviter un blocage au lancement du Basic 1.0, mais c'est vraisemblablement l'indicateur de simple densité. Je ne trouve pas la description du registre $E7D8 dans le manuel technique TO8, TO9, TO9+, ni dans la documentation technique du TO9. Je continue les recherches...
Il y a longtemps que je veux émuler la synthèse vocale dans dcmoto. Antoine m'a passé son code, j'ai même commencé à modifier dcmoto pour l'intégrer, mais je n'ai pas encore eu le temps ni le courage d'aller au bout. Ce n'est finalement pas si simple car il faut faire du multi-thread, exactement comme dans dcexel pour émuler les Exeldrums. Ca viendra probablement un jour, mais je ne fais pas de prévisions.
[Edit - 19/03/2013 11:00]
Un examen rapide du code en ROM TO9 montre que l'erreur de la fonction d'ouverture de fichier semble venir du bit 7 du registre $E7D8. Dans dcmoto j'ai positionné ce bit à 1 pour éviter un blocage au lancement du Basic 1.0, mais c'est vraisemblablement l'indicateur de simple densité. Je ne trouve pas la description du registre $E7D8 dans le manuel technique TO8, TO9, TO9+, ni dans la documentation technique du TO9. Je continue les recherches...
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7964
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: SDMOTO : nouvelle démo
Si je comprends bien, tu as de quoi observer le problème?
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 : nouvelle démo
Le test de la densité est visible en désassemblant la ROM du TO9 en $E6D4-$E6DE. Je n'ai pas d'exemple de programme pour tester, mais ce qui manque le plus est la documentation sur $E7D8. Dans les anciennes versions de dcmoto j'imposais le bit 7 à zéro, l'ouverture d'un fichier fonctionnait probablement. L'an dernier j'ai remarqué que le lancement du Basic 1.0 sur TO9 provoquait une boucle infinie en l'absence de disquette. Le programme attend le bit 7 de $E7D8. Je l'ai positionné à 1, ce qui résout ce problème mais en génère un autre.
L'absence de documentation est la plaie des auteurs d'émulateurs. Et même avec la doc on n'est jamais sûr de bien comprendre. On a failli me convaincre il y a peu que $A7E4-$A7E5 sur MO5 est un compteur incrémenté en permanence. J'ai même commencé à modifier dcmoto. Saisi d'un doute j'ai écrit un programme de test qui a montré que c'est faux. Comme quoi, si MESS renvoie une certaine valeur, ce n'est pas une preuve, pas plus que la documentation existante. Il faut tester sur la vraie machine.
L'absence de documentation est la plaie des auteurs d'émulateurs. Et même avec la doc on n'est jamais sûr de bien comprendre. On a failli me convaincre il y a peu que $A7E4-$A7E5 sur MO5 est un compteur incrémenté en permanence. J'ai même commencé à modifier dcmoto. Saisi d'un doute j'ai écrit un programme de test qui a montré que c'est faux. Comme quoi, si MESS renvoie une certaine valeur, ce n'est pas une preuve, pas plus que la documentation existante. Il faut tester sur la vraie machine.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7964
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: SDMOTO : nouvelle démo
Voici le code que j'avais trouvé problématique sur TO9:
Effectivement, il lit $E7D8 et si son MSB est à un il passe de 8 fichiers/entrée-catalogue à 4 seulement. Avec le MSB toujours à 0, on aurait de la haute densité en permanence. Il est bizzare ce E7D8, MESS l'utilise en écriture pour choisir le type de contrôleur externe. Quand à Tomix, il ne s'embête pas au niveau des détails: $E7D1->$E7D8 retournent 0 et $E7D0 retourne $F0.
Edit: sinon il y a un gag (je ne sais pas si c'est spécifique TO9), mais le bouton d'ouverture de D7 en R/W ne semble pas être honoré par le reste du code. Les D7 sont toujours chargées en "(R)" d'après ce que j'ai observé.
Code : Tout sélectionner
E6D4 8E0008 LDX #$0008
E6D7 F6E7D8 LDB $E7D8
E6DA 2A02 BPL $E6DE
E6DC 301C LEAX -$04,X
E6DE 39 RTS
Edit: sinon il y a un gag (je ne sais pas si c'est spécifique TO9), mais le bouton d'ouverture de D7 en R/W ne semble pas être honoré par le reste du code. Les D7 sont toujours chargées en "(R)" d'après ce que j'ai observé.
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 : nouvelle démo
Pour l'ouverture des disquettes en protection écriture, nous en avions parlé dans un autre post. Effectivement l'option de Windows n'est pas testée, seule la case à cocher dans la boîte de dialogue Options / Paramètres est prise en compte. A l'occasion d'une nouvelle version de dcmoto j'essaierai d'améliorer.
Confirmation pour le bit 7 de $E7D8 en mode TO9 :
- Avec le bit à 1, le Basic 1.0 fonctionne bien mais la démo Elvis Lives plante.
- Avec le bit à 0, la démo Elvis Lives fonctionne bien mais le Basic 1.0 ne démarre pas sans disquette.
C'est donc un nouveau mystère à éclaircir. Toute aide sera appréciée
Pour être complet, il y a aussi un problème d'émulation QDD : si le bit 7 de $E7D8 reste toujours à la même valeur (0 ou 1), l'accès au QDD se bloque. Il faut changer le bit en permanence pour débloquer. Ce qui me fait dire que cette adresse a des utilisations différentes en fonction du périphérique connecté.
@sam : sais-tu qu'en mélangeant nos deux programmes Elvis (ton diaporama + ma musique) nous aurions une démo beaucoup plus convaincante ? La musique occupe 99% du cpu, mais entre deux morceaux on peut très facilement glisser la lecture et l'affichage d'une image. On peut même stocker l'image dans les bits inutilisés par la musique (les échantillons 6 bits sont stockés dans des octets et laissent 2 bits disponibles) et l'afficher en utilisant les quelques cycles des temporisations. Je sais bien que la carte SD n'est pas admise dans les concours, mais juste pour le fun ce serait bien.
Confirmation pour le bit 7 de $E7D8 en mode TO9 :
- Avec le bit à 1, le Basic 1.0 fonctionne bien mais la démo Elvis Lives plante.
- Avec le bit à 0, la démo Elvis Lives fonctionne bien mais le Basic 1.0 ne démarre pas sans disquette.
C'est donc un nouveau mystère à éclaircir. Toute aide sera appréciée
Pour être complet, il y a aussi un problème d'émulation QDD : si le bit 7 de $E7D8 reste toujours à la même valeur (0 ou 1), l'accès au QDD se bloque. Il faut changer le bit en permanence pour débloquer. Ce qui me fait dire que cette adresse a des utilisations différentes en fonction du périphérique connecté.
@sam : sais-tu qu'en mélangeant nos deux programmes Elvis (ton diaporama + ma musique) nous aurions une démo beaucoup plus convaincante ? La musique occupe 99% du cpu, mais entre deux morceaux on peut très facilement glisser la lecture et l'affichage d'une image. On peut même stocker l'image dans les bits inutilisés par la musique (les échantillons 6 bits sont stockés dans des octets et laissent 2 bits disponibles) et l'afficher en utilisant les quelques cycles des temporisations. Je sais bien que la carte SD n'est pas admise dans les concours, mais juste pour le fun ce serait bien.
Dernière modification par Daniel le 19 mars 2013 15:00, modifié 1 fois.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7964
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: SDMOTO : nouvelle démo
Il faudrait voir pk le basic ne démarre pas sans d7. Le basic devrait juste tester l'existence d'un boot loader par l'appel à $E007 (de mémoire), et vivre sa vie sans D7 s'il n'en trouve pas. Dommage que je sois loin de mon TO9 sinon je pourrais te dire que vaut $E7D8 dans le basic1.
nota: (c'est une toute petite partie de elvis.. je suis d'ailleurs en train d’améliorer mon algo de conversion pour avoir une version encore plus "zolie". Une version remasterized en quelque sorte ).
nota: (c'est une toute petite partie de elvis.. je suis d'ailleurs en train d’améliorer mon algo de conversion pour avoir une version encore plus "zolie". Une version remasterized en quelque sorte ).
Dernière modification par __sam__ le 19 mars 2013 15:00, 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 : nouvelle démo
Bonjour,
Le registre $E7D8 du TO9 est décrit pages 85 et 87 (42 et 43 djvu) du manuel technique des TO8, TO9 et TO+.
En écriture, choix de la densité : 0 double densité, 1 simple densité.
En lecture, information du choix de la densité.
Reste à déterminer, d'après le schéma de la page 85, les valeurs à l'initialisation. Et là, je voudrais bien qu'un électronicien m'explique...
Cordialement,
Le registre $E7D8 du TO9 est décrit pages 85 et 87 (42 et 43 djvu) du manuel technique des TO8, TO9 et TO+.
En écriture, choix de la densité : 0 double densité, 1 simple densité.
En lecture, information du choix de la densité.
Reste à déterminer, d'après le schéma de la page 85, les valeurs à l'initialisation. Et là, je voudrais bien qu'un électronicien m'explique...
Cordialement,
Patrick
Re: SDMOTO : nouvelle démo
Merci Patrick, j'avais lu trop rapidement le manuel technique.
Le rôle du circuit I49 permettant, d'après le texte, d'accéder à la lecture du bit de densité, me semble aussi très mystérieux et le schéma ne nous éclaire guère. Mais on peut considérer que la lecture du bit 7 donne bien la densité. Il faut donc le retourner à zéro dans dcmoto.
Reste à comprendre pourquoi ce bit est testé à 1 au démarrage du Basic 1.0...
Le test se passe ici (avec X=$E7D0) :
Quand on se branche en $FFE5 le Basic 1.0 démarre bien dans dcmoto.
Quand on exécute la procédure $E0B3, elle se termine normalement et on reboucle éternellement en $FFB0.
C'est certainement un bug de dcmoto, je continue les recherches.
A un certain moment de la procédure $E0B3, il y a une écriture en $E7D8. C'est probablement là l'erreur de dcmoto : il ignore cette écriture. En exécutant pas à pas, je vois que le programme cherche à écrire $80 en $E7D8, ce qui débloque la boucle infernale.
Le rôle du circuit I49 permettant, d'après le texte, d'accéder à la lecture du bit de densité, me semble aussi très mystérieux et le schéma ne nous éclaire guère. Mais on peut considérer que la lecture du bit 7 donne bien la densité. Il faut donc le retourner à zéro dans dcmoto.
Reste à comprendre pourquoi ce bit est testé à 1 au démarrage du Basic 1.0...
Le test se passe ici (avec X=$E7D0) :
Code : Tout sélectionner
FFC7 A608 LDA $08,X
FFC9 2B1A BMI $FFE5
FFCB BDE0B3 JSR $E0B3
FFCE 20E0 BRA $FFB0
Quand on exécute la procédure $E0B3, elle se termine normalement et on reboucle éternellement en $FFB0.
C'est certainement un bug de dcmoto, je continue les recherches.
A un certain moment de la procédure $E0B3, il y a une écriture en $E7D8. C'est probablement là l'erreur de dcmoto : il ignore cette écriture. En exécutant pas à pas, je vois que le programme cherche à écrire $80 en $E7D8, ce qui débloque la boucle infernale.
Code : Tout sélectionner
E040 8DEA BSR $E02C 7
E042 D649 LDB /$49 4
E044 AAC5 ORA B,U 5
E046 A708 STA $08,X 5
E048 4F CLRA 2
E049 39 RTS 5
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: SDMOTO : nouvelle démo
Ca n'a aucun rapport, mais cet octet $E7D8 sert aussi à la commutation des banques de ROM du contrôleur CD90-351 (bits 0 et 1).
Nouvelle version de test de dcmoto 2013.03.19 : http://dcmoto.free.fr/emulateur/prog/dc ... 130319.zip
Modifications par rapport à la version précédente :
- bit 7 de $E7D8 initialisé à zéro
- octet $E7D8 modifiable en écriture
Moyennant quoi la démo Elvis Lives fonctionne et le Basic 1.0 démarre sans disquette. Espérons qu'il n'y aura pas d'effets collatéraux.
Reste à traiter le cas des TO7 et TO7/70. C'est peut-être le même problème. Avec quel contrôleur peut-on reproduire l'erreur
Nouvelle version de test de dcmoto 2013.03.19 : http://dcmoto.free.fr/emulateur/prog/dc ... 130319.zip
Modifications par rapport à la version précédente :
- bit 7 de $E7D8 initialisé à zéro
- octet $E7D8 modifiable en écriture
Moyennant quoi la démo Elvis Lives fonctionne et le Basic 1.0 démarre sans disquette. Espérons qu'il n'y aura pas d'effets collatéraux.
Reste à traiter le cas des TO7 et TO7/70. C'est peut-être le même problème. Avec quel contrôleur peut-on reproduire l'erreur
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7964
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: SDMOTO : nouvelle démo
Voici ce que je comprends du décodage de la rom. En gros c'est le code de détection de bootblock qui pose pb à DCMOTO:
Donc ca boucle en basic1 tout simplement parce que le passage en haute densité de $E046 n'est pas honoré: le code boucle sur le passage en haute densité jamais enregistré au niveau de $E7D8.
Edit héhé je viens de voir qu'on a la même analyse. Tu as déjà fait une nouvelle version. C'est tout bon. L'émulation progresse, c'est une bonne chose. Le jour ou l'emul MAE sera dispo, je vais peut-être regarder si on peut faire du son multivoix asynchrone sur TO.
Code : Tout sélectionner
FFB0 0F4A CLR /$4A
FFB2 0F4B CLR /$4B
FFB4 8601 LDA #$01
FFB6 974C STA /$4C
FFB8 CE6200 LDU #$6200
FFBB DF4F STU /$4F
FFBD 8EE7D0 LDX #$E7D0
FFC0 E684 LDB ,X
FFC2 17E281 LBSR $E246 ; charge 1er secteur en $6200
FFC5 2409 BCC $FFD0 ; si tout est ok, poursuite
FFC7 A608 LDA $08,X ; sinon:
FFC9 2B1A BMI $FFE5 ; si déjà haute densité: sortie
FFCB BDE0B3 JSR $E0B3 ; si basse densité ==> $E0B3 (passage en haute densité)
FFCE 20E0 BRA $FFB0 ; reboucle. Donc 1ere passe en basse densité, et 2nd en haute, et 3eme => sortie
...
E0B3 8680 LDA #$80 ; trucs pas interressants
E0B5 214F BRN $E106
E0B7 2087 BRA $E040
...
E040 8DEA BSR $E02C
E042 D649 LDB /$49
E044 AAC5 ORA B,U ; A recoit $80 ici
E046 A708 STA $08,X ; passage en haute densité
E048 4F CLRA
E049 39 RTS
Edit héhé je viens de voir qu'on a la même analyse. Tu as déjà fait une nouvelle version. C'est tout bon. L'émulation progresse, c'est une bonne chose. Le jour ou l'emul MAE sera dispo, je vais peut-être regarder si on peut faire du son multivoix asynchrone sur 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
- irios
- Messages : 3398
- Inscription : 04 nov. 2007 19:47
- Localisation : Rochefort du Gard (30)
- Contact :
Re: SDMOTO : nouvelle démo
Daniel, il faudra que tu viennes à la maison afin de pouvoir mettre les machines en tests avec l'analyseur logique et là tu pourras savoir exactement ce qui ce passe. Mais on verra çà dans les beaux jours car cela me laissera le temps de terminer le ménage dans mon atelier !!
http://irioslabs.over-blog.com/
La connaissance ne vaut que si elle est partagée par tout le monde.
I2C
La connaissance ne vaut que si elle est partagée par tout le monde.
I2C
Re: SDMOTO : nouvelle démo
L'analyseur logique est pour moi le dernier recours quand toutes les autres techniques ont échoué.
Je ne suis pas encore arrivé à cette dernière extrémité pour l'émulation du TO9, par contre j'ai d'autres projets en cours pour lesquels un analyseur permettrait d'y voir plus clair. Je retiens donc ta proposition pour plus tard... Merci
Je ne suis pas encore arrivé à cette dernière extrémité pour l'émulation du TO9, par contre j'ai d'autres projets en cours pour lesquels un analyseur permettrait d'y voir plus clair. Je retiens donc ta proposition pour plus tard... Merci
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.