Je parlais cette semaine de mon lecteur de disquettes FlashPath pour Memory Stick, et donc j’ai pensé à ce sujet : mais comment ça marche ?
Il existe plusieurs modèles de FlashPath, en fonction du type de cartes. Ils peuvent accepter les cartes SmartMedia, les cartes MMC, les cartes SD (c’est rare) et les Memory Stick (mais pas les CompactFlash, trop épaisses). Mais le fonctionnement dans tous les cas est assez proche. Une bonne partie des informations vient de cette page sur une tentative de pilotes pour GNU/Linux.
En interne, vous trouverez un microcontrôleur Atmel, un peu de RAM (32 ko) et une puce CPLD (programmable). Ensuite, bien évidemment, un lecteur de cartes mémoire (en fonction des cartes) et une tête magnétique. La première chose à bien comprendre, c’est que rien ne bouge dans un FlashPath. Une disquette normalement divisée en pistes et en secteurs, mais dans un FlashPath, on n’a réellement qu’une seule piste, avec les 18 secteurs classiques. Le premier est fixe et donne quelques infos sur l’adaptateur, le second va servir à envoyer des commandes au FlashPath et les seize autres contiennent les données.
Si vous insérez un FlashPath dans un lecteur classique, il va indiquer que le disque n’est pas formaté et la présence des données en piste 0 va permettre d’empêcher de démarrer. l’intérêt de ce choix, c’est que si vous insérez l’adaptateur dans un lecteur, il ne va rien se passer de spécial, en dehors (probablement) d’une erreur. C’est là qu’intervient le pilote, nécessaire. Il va permettre de gérer le protocole de l’adaptateur. De ce que j’ai compris, il va lire dans le premier secteur les informations sur la carte insérée (la limite pratique dépend de la norme et – avec les SmartMedia – de l’adaptateur) et envoyer des commandes à travers le second secteur. Le programme prend totalement la main sur le fonctionnement classique du lecteur, donc.
Ensuite, les commandes permettent de récupérer des données sur la carte mémoire, pour les exposer à travers la tête magnétique, par tranche de 8 ko (16 secteurs de 512 octets). On se rapproche un peu, dans le fonctionnement, des mappers des cartouches de console. Le contrôleur de l’adaptateur va donc essentiellement faire des déplacements entre la carte mémoire et sa mémoire (via la tête magnétique) par bloc de 8 ko. Question débit, on reste limité par les possibilités d’un lecteur de disquettes, donc ça reste lent, bien plus qu’un lecteur de cartes mémoire classique en USB, par exemple.
Dans la pratique, on dépend donc largement d’un pilote, qui existe pour différents OS, de Windows 3.11 à Windows XP, en passant par les 9x, NT, 2000, DOS, GNU/Linux et même Mac OS (en lecteur seule). L’intégration va aussi dépendre de l’OS, sous Mac OS (encore) il faut désactiver quelques trucs liés à la prise en charge des disquettes et médias issus du monde PC.
Sur le principe, les FlashPath sont très malins, mais le fonctionnement reste quand même un peu aléatoire. D’abord, il faut un lecteur de disquettes contrôlable facilement, ce qui exclut les modèles USB et tout ce qui est un peu alternatif. Ensuite, le fonctionnement même de la tête nécessite une alimentation externe, sous la forme de deux batteries CR2016 (il faut que ça rentre). Enfin, la compatibilité sur les cartes mémoire reste assez faible : en SmartMedia, la capacité maximale dépend de l’adaptateur (un problème courant, même en USB), en MMC, les cartes de grande capacité (256 Mo) ne passent pas (idem, c’est courant) et en Memory Stick, la capacité est de 128 Mo au maximum, c’est la norme. Je ne connais les limites en SD, mais on peut supposer qu’elle est probablement de 1 ou 2 Go (et probablement pas 4 Go).
Le problème principal reste le prix et le fait que ce soit ancré dans son époque… ou presque. Les FlashPath sont apparus à la fin des années nonante, à un moment ou la disquette était à son apogée, mais déjà dépassée. Ses remplaçants n’existaient pas encore (les clés USB, c’est au début des années 2000) mais la technologie était déjà lente. La raison d’être du FlashPath, c’est que les autres technologies de lecteurs étaient peu pratiques : le série était lent, le parallèle compliqué à gérer, l’USB rare et mal supporté. Visiblement, c’était donc plus simple pour certains de mettre la carte dans une disquette « virtuelle » avec un programme dédié que d’utiliser le port série (avec un programme dédié). L’utilisation de l’USB a tout de même balayé assez vite ce genre d’accessoires, même s’il y a quelques usages originaux, comme les appareils photo de Sony capables d’utiliser le FlashPath, on en reparle dans la semaine.