SD File Manager (Petit FatFS pour SDMOTO)

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
Orion_
Messages : 176
Inscription : 07 août 2014 16:29
Localisation : Perpignan
Contact :

SD File Manager (Petit FatFS pour SDMOTO)

Message par Orion_ »

J'ai pour projet de faire un outil de gestion de fichier pour carte SD directement sur ordinateur MO/TO en utilisant le module SDMOTO/SDMO.

Voila mon travail de la journée: J'ai porté la librairie Petit FatFS sur MO6 en utilisant le module SDMOTO
Démonstration : https://vimeo.com/105344514

Description de la vidéo:
Je compile mon programme avec gcc6809 (Petit FatFS est en C, l'interface pour SDMOTO est en asm, basé sur le code de CS91-280)
Je converti le programme en fichier wav k7 (vitesse 2400 bauds pour MO6)
Je créer des fichiers sur la carte SD
Je met la carte SD dans le module SDMOTO sur le MO6
Je charge le programme sur MO6 via une fausse cassette relier a la carte son de mon PC
Le programme lit la SD et liste les fichiers présent sur celle çi (dont les fichiers que j'ai juste créé précédemment, la SD est au format FAT32)
Programmation rétro ! Orion_'s website
Avatar de l’utilisateur
6502man
Messages : 12327
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par 6502man »

Super :D

Bon courage pour la suite.

Vivement la suite avec la lecture d'un fichier sur la carte SD .
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Orion_
Messages : 176
Inscription : 07 août 2014 16:29
Localisation : Perpignan
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par Orion_ »

Petit FS est composé de 2 modules, un fichier pff.c qui gère toutes les fonctions FAT, et diskio.c qui est un fichier a personnaliser pour les accès lowlevel au module disque.
Jusqu'a maintenant je lisait un secteur de la SD en entier en assembleur, et diskio.c se chargeais de ne récupérer que la partie que demandais le module pff.c (parfois 2 octets seulement)
J'ai donc supprimé diskio.c et j'ai programmer toute l'interface en assembleur, ce qui me permet par exemple, quand pff.c demande 2 octets à l'offset 510, je ne lit pas les 510 premiers octets, je n'envoie que des top d'horloge (fonction CLOCK) et je lit vraiment que les 2 derniers octets.

Après pas mal de debug, ça fonctionne ! et c'est bien sur plus rapide qu'avant :)
J'ai un peu galéré, vu que je ne suis pas très à l'aise en asm 6809, donc faire des soustractions 16bits pour les boucles, ou comprendre dans quel sens gcc6809 passait les paramètres des fonctions sur la stack, m'a demandé quelques heures de prise de tête :D

6502man > Si le listing de fichier fonctionne, La lecture de fichier devrait fonctionner aussi sans soucis :)
Il faut juste programmer un outil de management de fichier maintenant, mais toute la partie lecture de système de fichier FAT 16/32 fonctionne !
Si vous êtes intéressé par les sources je peut les mettre a disposition (mais il faut un environnement de compilation gcc6809 4.3.4 fonctionnel)
Programmation rétro ! Orion_'s website
Daniel
Messages : 17418
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par Daniel »

Tu ne peux pas savoir le plaisir que j'ai de voir quelqu'un s'intéresser aux développements sur MO6. Les MO ont toujours été un peu délaissés par les programmeurs, pourtant j'y reste très attaché car le MO5 a été ma première machine.

Tu utilises le format cassette pour transférer les fichiers sur MO6. Pourquoi ne pas les avoir mis sur une image de disquette au format .sd ? En l'utilisant comme disquette de démarrage pour le contrôleur CS91-280, tous les fichiers sont immédiatement disponibles au démarrage du système.

J'attends avec impatience la suite. Je suppose qu'il est possible, en sélectionnant un fichier de la carte SD dans une liste donnée par Petit FatFS, de retrouver son adresse physique sur la carte ?

Si tu as besoin d'aide pour programmer en assembleur 6809 sur Thomson, fais comme moi : tu poses le problème ici, et s'il est intéressant et complexe tu auras une réponse de __sam__ dans les heures qui suivent :wink:

Dernier point : j'ai pitié de toi avec ton module SDMOTO bricolé. Je t'en offre un pour Noël, c'est promis. Avec une LED bleue :wink:
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Orion_
Messages : 176
Inscription : 07 août 2014 16:29
Localisation : Perpignan
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par Orion_ »

Daniel a écrit :Tu ne peux pas savoir le plaisir que j'ai de voir quelqu'un s'intéresser aux développements sur MO6. Les MO ont toujours été un peu délaissés par les programmeurs, pourtant j'y reste très attaché car le MO5 a été ma première machine.
Ma première machine fut un Atari STe, mais à l'école on avait des restes du plan informatique pour tous, donc des TO7 et MO5 sur lesquels j'ai commencer a apprendre le Basic.
Plus tard au collège on a fait une expo dans mon club informatique sur les vieux ordinateur et j'ai trouvé un MO5, du coup j'y suis très nostalgique :D
Le MO6 étant compatible et avec des capacités plus intéressantes, c'est pour ça que je l'ai choisis, après je regrette qu'il n'y ait pas de timer, chose que je ne savais pas :(
Tu utilises le format cassette pour transférer les fichiers sur MO6. Pourquoi ne pas les avoir mis sur une image de disquette au format .sd ? En l'utilisant comme disquette de démarrage pour le contrôleur CS91-280, tous les fichiers sont immédiatement disponibles au démarrage du système.
Oui effectivement mais je n'ai pas encore mis en place ce système, j'ai trouvé un outil qui converti automatiquement un fichier .bin en .k7 ce qui est très pratique, je n'ai pas trouvé la même chose pour faire des .fd puis .sd (tes 2 outils sont a interface graphique ce qui demande un processus de conversion un peu moins automatique)
J'attends avec impatience la suite. Je suppose qu'il est possible, en sélectionnant un fichier de la carte SD dans une liste donnée par Petit FatFS, de retrouver son adresse physique sur la carte ?
Possible, c'est ma prochaine étape (avec l'écriture de secteur également)
Dernier point : j'ai pitié de toi avec ton module SDMOTO bricolé. Je t'en offre un pour Noël, c'est promis. Avec une LED bleue :wink:
C'est gentil ! :D (en plus j'adore les led bleue)
Pour économiser un peu je pourrais t'envoyer mon module catelex ? (vu qu'il n'est pas soudé)


Pour la suite, j'aimerais donc faire un outil qui sera chargé automatiquement depuis une disquette de boot en utilisant CS91-280
et qui permettra de charger un fichier de la SD vers la mémoire par exemple, d'organiser les fichiers SD pour qu'ils soit utilisable avec les switch de l'interface CS91-280
mais aussi d'autre chose comme par exemple afficher une image ? lire un son ?
Pour les images, y a t'il un format plus ou moins standard sur thomson ? y a t'il des convertisseurs qui existe et qui supporte ce format ?
Sinon je pourrais tenter un lecteur de fichier BMP qui serait déja au bon format (exemple 160x200 16 couleurs ou 320x200 4 couleurs)
Programmation rétro ! Orion_'s website
Avatar de l’utilisateur
6502man
Messages : 12327
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par 6502man »

Pour convertir des images BMP vers MO5/MO6 j'ai fait un convertisseur : BMP2MO5/6
Il y a même des slideshow pour illustré ce convertisseur ZXart et GAMESHOW :wink:

C'est bien toi le créateur de Elensar ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
__sam__
Messages : 7983
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par __sam__ »

Bravo pour la demonstration technique. C'est très prometteur.
Orion_ a écrit :Pour les images, y a t'il un format plus ou moins standard sur thomson ? y a t'il des convertisseurs qui existe et qui supporte ce format ?
Oui le format MAP, supporté par les instructions basic LOADP, SAVEP combinées à PUT() et GET(). C'est un format compréssé. Tu peux obtenir un afficheur pour PC de ce format MAP ici: http://www.logicielsmoto.com/phpBB/view ... 3181#p3181
(tu as de la chance, c'est un plugin pour XnView que je crois avoir vu sur ton "PC Engine" :wink: ). Pour la création, j'ai posté un peu partout du code perl qui converti des images PC sur thomson. Si tu veux voir comment faire un code de slideshow, je t'encourage à regarder le code en basic de ma demo Skyrim: http://dcmoto.free.fr/programmes/skyrim/

Sinon l'ASM6809 est très facile. C'est aussi facile à coder que du C "bas niveau". Si tu veux l'apprendre j'avais collectionné tous les cours d'hebdologiciels ici: http://www.logicielsmoto.com/phpBB/view ... ?f=3&t=419 (je te l'ai peut-être déjà indiqué). Mais bon ca ne va pas très loin. Perso j'ai pas mal appris du 6809 en lisant les annexes du programming manual 6809 (http://forum.system-cfg.com/viewtopic.php?f=7&t=5675). Je te recommande en particulier d'imprimer le tableau des opcodes qui résume quasiment tout: https://web.archive.org/web/20131222102 ... htm#tabD-1

N"hésite pas à poser des questions par ici ou sur le forum de logicielsmoto.com. Tu auras là bas les réponses de notre maitre ASM à tous qu'est Préhisto (alias Defusr) ainsi que d'autres codeurs thomson comme Pulkomandy (qui programme sur MO5).

Au fait est-ce que ton pseudo a un lien avec ceci: http://orion.cpcscene.com ?
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
Daniel
Messages : 17418
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par Daniel »

Orion_ a écrit :organiser les fichiers SD pour qu'ils soit utilisable avec les switch de l'interface CS91-280
Je préfère que l'on oublie petit à petit les switches 1 à 5 du contrôleur CS91-280, car ils ne sont pas pratiques. Il ne faut pas trop les manipuler quand le contrôleur est connecté à une machine sous tension, car on risque de provoquer des mauvais contacts dans le connecteur de bus. Dans la version sur plaquette d'essais du contrôleur, j'ai supprimé les switches et je diffuse la version 20140518 de l'EPROM : elle ne teste pas la position des interrupteurs et les considère tous en position ON. Au passage, cette version est également utilisable avec la version "boîtier nanoréseau" du contrôleur, et dans ce cas la position des interrupteurs n'est pas testée.

La règle doit être de démarrer toujours sur le fichier .sd dont l'adresse physique est en 0x200-0x203 de la carte SD. Cette zone est initialisée une fois pour toutes et normalement jamais modifiée. Le fichier .sd ainsi désigné est la disquette de démarrage (ou plus exactement les 4 unités de disquettes de démarrage). Dans ces 4 unités ont peut placer tous les programmes nécessaires pour accéder aux autres fichiers de la carte. Le changement de fichier se fait par soft. Par exemple, pour accéder à une autre image de disquette, on fait les 4 POKEs pour définir son adresse physique. C'est là que Petit FatFS peut intervenir, pour retrouver l'adresse physique à partir d'un nom de fichier choisi dans une liste, puis faire automatiquement les 4 POKEs. Même principe pour lancer les démonstrations lisant directement des secteurs de la carte.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Orion_
Messages : 176
Inscription : 07 août 2014 16:29
Localisation : Perpignan
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par Orion_ »

Daniel a écrit :Le changement de fichier se fait par soft. Par exemple, pour accéder à une autre image de disquette, on fait les 4 POKEs pour définir son adresse physique.
Si je me réfère au code source de CS91-280 il s'agit donc de cette ligne ?

Code : Tout sélectionner

SD_LB0  EQU $608E   adresse du debut du fichier .sd dans la carte SD
Qui serait donc $208E sur MO5/6 ?

Je vais faire un test, ça sera plus simple que de tenter de debugger ma routine d'ecriture secteur qui marche pas %)
(surtout que PetitFATFS ne supporte que de manière très limité l'écriture, par exemple, pas de création de fichier ni d'extension de taille, il ne peu écrire que dans un fichier déjà créer et de taille suffisante)
Programmation rétro ! Orion_'s website
Daniel
Messages : 17418
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par Daniel »

C'est bien ça : adresse physique dans les octets $208E-$2091 pour les MO, avec toujours la même subtilité :
- Pour les cartes SD l'adresse est un nombre d'octets
- Pour les cartes SDHC l'adresse est un nombre de secteurs
Le type de carte est en $2092 : 0=SD, 1=SDHC

Après un changement, on peut revenir à la disquette de démarrage en remettant son adresse en $208E, mais en pratique c'est souvent plus simple de rebooter la machine (en la mettant hors-tension quelques secondes).
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Orion_
Messages : 176
Inscription : 07 août 2014 16:29
Localisation : Perpignan
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par Orion_ »

Je serais décidément resté acharné aujourd'hui, depuis mon lever ce matin, jusqu'a mon coucher ce soir :D
voila ça fonctionne: Changement de fichier SD à la volée
https://vimeo.com/105389942 (dispo quand la vidéo sera encodé, d'ici 30min)
(PS: la coupure vidéo c'est parceque j'avais du mal a taper le '&' a une seule main, du coup j'ai du poser l'appareil vidéo)

Reste un petit truc que je ne comprend pas, quand je créer un fichier .fd avec dcfdutil que j'y met mon programme .bin (le même que celui que je charge depuis la cassette), je transforme le .fd en .sd, je met ce fichier .sd en boot
quand je suis sur mon MO6, si je fait DIR, je vois bien mon fichier test.bin, mais si je fait LOADM"test.bin", j'ai un "Device I/O error" :(
pourtant ZXart disk fonctionne bien lui (je ne sais pas si il charge un bin ou si c'est que du basic par contre)

Pour ceux qui veulent tester, voici le programme: http://onorisoft.free.fr/extern/test.bin
Il ce charge sur un MO6 (peut être même MO5 ?) en $3000 (faire LOADM"",,R ça le lance tout seul)
il va lister les fichiers de la SD, puis demander quel fichier vous voulez.
Il faut entrer le nom (en respectant la case) et en évitant de ce tromper, ma fonction "getline" n'est peut être pas fonctionnel si on utilise la touche DEL ou les flèches
Il va alors chercher le fichier .SD sur la SD et l'activer pour l'interface CS91-280 (en affichant l'adresse du secteur au passage)
Programmation rétro ! Orion_'s website
Avatar de l’utilisateur
LeGrapyl
Messages : 1228
Inscription : 15 déc. 2013 23:38
Localisation : 34 mais parfois 71...

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par LeGrapyl »

j'ai pas tout compris, mais ça a l'air super... tu pourras faire un tuto "soyons clairs" :lol: ?
Tom la Riboulle, l'homme qui roule en boule !
Daniel
Messages : 17418
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par Daniel »

La nécessité de saisir l'adresse physique est le premier reproche fait à SDMOTO par les utilisateurs. Avec ce programme de changement de disquette par nom de fichier, ils ne pourront plus se plaindre. Il ne reste plus qu'à écrire le programme de choix du fichier dans une liste et ce sera parfait. En fait, c'est le portage de bootaddress.exe de Windows 7 vers Thomson que tu viens de réaliser :D

La copie du fichier .bin sur disquette avec dcfdutil devrait bien marcher, mais j'ai un gros doute : les premières versions de dcfdutil avaient un bug, corrigé depuis. Par contre je ne suis pas certain d'avoir mis à jour le site dcmoto après la correction. Tu peux essayer avec la dernière version : http://dcmoto.free.fr/emulateur/prog/dc ... 140704.zip
Je ferai l'essai dans la journée pour m'assurer que cette dernière version fonctionne bien avec le fichier test.bin.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13297
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par Carl »

Bravo Orion pour cette évolution !

J'aurai bientôt plus besoin de jouer avec les micro switch du CS91-280 :wink:

Carl
Avatar de l’utilisateur
Orion_
Messages : 176
Inscription : 07 août 2014 16:29
Localisation : Perpignan
Contact :

Re: SD File Manager (Petit FatFS pour SDMOTO)

Message par Orion_ »

6502man a écrit : C'est bien toi le créateur de Elensar ?
Elansar, oui c'est bien moi :) (et la suite Philia)
Mais hors de question de le porter sur MO/TO, y'a pas assez de couleurs ni de pixels :lol:
__sam__ a écrit : Au fait est-ce que ton pseudo a un lien avec ceci: http://orion.cpcscene.com ?
Non ce n'est pas moi :D Je programme sur beaucoup de machine, mais pas le CPC
Daniel a écrit : La copie du fichier .bin sur disquette avec dcfdutil devrait bien marcher, mais j'ai un gros doute : les premières versions de dcfdutil avaient un bug, corrigé depuis. Par contre je ne suis pas certain d'avoir mis à jour le site dcmoto après la correction. Tu peux essayer avec la dernière version : http://dcmoto.free.fr/emulateur/prog/dc ... 140704.zip
Je ferai l'essai dans la journée pour m'assurer que cette dernière version fonctionne bien avec le fichier test.bin.
J'ai essayer mais ça ne marche pas mieux, ce qui est très bizarre c'est que, en mode .FD il me dit "Bad File Structure", alors que en mode .SD il me dit "Device I/O Error", pourtant c'est la conversion directe du .FD en .SD
Peut être qu'un .BIN cassette n'a pas le même format qu'un .BIN disquette ?
J'ai suivi ce format: 0x00, Taille_16bits, Adresse_Chargement_16bits, Données..., 0xFF, 0x00, 0x00, Adresse_Démarrage_16bits
Programmation rétro ! Orion_'s website
Répondre