Je sais qu'il y a des pros de Sedoric ici, je me demandais si quelqu'un avait sous la main (ou savais comment faire) un programme pour copier des disquettes.
En gros j'ai un lecteur Microdisc avec un vrai 3" en lecteur A et un Gotek en lecteur B, et j'aimerais pouvoir créer une disquette réelle a partir d'un fichier HFE stocké sur le Gotek.
Je suppose que je devrait pouvoir trouver du code dans Nibble, mais si quelqu'un à déja fait ca, ca serait sympa.
En gros dans mon cas les disquettes sont au format double face, 42 pistes de 17 secteurs, avec des secteurs de 256 octets et un "sector interleave" de 6.
J'imagine que l'interleave ca se régle pendant la phase de formatage, mais je n'ai pas vu du paramètre pour ca dans la commande INIT, donc je ne sais pas si Sedoric gère ce paramètre (qui a une grosse influence sur la performance quand on lit la disquette).
Idéalement l'outil aurait aussi la possibilité de vérifier la copie, pour détecter les disquettes défectives.
Merci d'avance !
Je ne sais pas en détail ce dont tu as besoin, mais si c'est "juste" pour copier du Sedoric, j'avais fait un programme qui sauvait le contenu d'une disquette via le port cassette. Je ne sais plus où j'ai bien pu mettre ça en téléchargement, là je suis pressé mais je te retrouverai ça, au moins ça indique où chercher le format de la disquette (mais ça ne va pas jusqu'aux "interleave", je me fichais de la géométrie des secteurs)
Voilà les petites routines en ASM faites à l'époque pour lire une disquette Sedoric secteur par secteur. La boucle de lecture principale était en basic, et le code est prévu pour une utilisation sous Sedoric (appel à des routines système pour lire les secteurs, etc.)
A noter que ce qui différencie la face 1 de la face 2, c'est le bit 7 du numéro de piste. Autrement dit la piste 0 de la face 1, c'est la piste 0; la piste 0 de la face 2, c'est la piste 128.
Les pistes commencent à 0, les secteurs à 1.
Les drives vont de 0 à 3 (pour les drives A à D).
"BUF2" qui sert à stocker la lecture d'un secteur par Sedoric, est en RAM Overlay, de $C200 à $C2FF.
En espérant que ça aide un peu; pas sûr que je t'apprenne grand chose...
- RECHERCHE INFOS DISK - 9810 20 F2 04 JSR 04F2 passage Ram Overlay 9813 20 4C DA JSR DA4C charger la 1ere bitmap dans BUF2 9816 AD 09 C2 LDA C209 nb pistes + nb de faces (bit 7 à 1 si double face) 9819 8D 06 98 STA 9806 981C AD 07 C2 LDA C207 nb de secteurs par piste 981F 8D 03 98 STA 9803 9822 AD 06 C2 LDA C206 nb de pistes (par face) 9825 8D 02 98 STA 9802 9828 20 F2 04 JSR 04F2 retour de Ram Overlay 982B 60 RTS 982C EA EA EA EA NOP (présentation) - MOVE HAUT - 9830 20 F2 04 JSR 04F2 passage Ram Overlay 9833 à 9886 routine MOVEHAUT (cf. CEO-Mag 133, p.22-23) 9887 20 F2 04 JSR 04F2 retour de Ram Overlay 988A 60 RTS 988B EA EA EA EA EA NOP (présentation) - CHARGER SECTEUR DANS BUF2 - 9890 20 F2 04 JSR 04F2 passage Ram Overlay 9893 AD 01 98 LDA 9801 lire le drive choisi 9896 8D 00 C0 STA C000 l'affecter au drive actif 9899 AD 04 98 LDA 9804 piste en cours de traitement 989C AC 05 98 LDY 9805 secteur en cours de traitement 989F 20 60 DA JSR DA60 charge dans BUF2 le secteur Y de la piste A 98A2 20 F2 04 JSR 04F2 retour de Ram Overlay 98A5 60 RTS - CORRIGER BUG CLOAD SEDORIC - 98A6 A5 C1 LDA #C1 placer C1 98A8 8D 0E 04 STA #040E en 40E 98AB 8D 3A 04 STA #043A et en 43A 98AE 60 RTS retour - CONVERTIR LETTRE EN No DE DRIVE - LDA lettre du drive choisi (A-D) 38 SEC prépare soustraction (rappel C = 0 au début sous-programme) E9 41 SBC #41 convertit première lettre en n° de drive (A = 0 etc.) STA 9801
J'imagine que pour faire la copie il suffit de rajouter la partie qui sélectionne le lecteur de destination, et sauver le contenu de BUF2 avec la meme information de piste et secteur.
Et probablement rajouter un test pour lire la 1ere bitmap de l'autre disque pour vérifier que le formatage (nombre de pistes, faces et secteurs) est compatible.
En gros j'ai un lecteur Microdisc avec un vrai 3" en lecteur A et un Gotek en lecteur B, et j'aimerais pouvoir créer une disquette réelle a partir d'un fichier HFE stocké sur le Gotek.
Bonjour.
Si vous cherchez à copier un disque complet, il existe la commande BACKUP A TO B ou B TO A. Cela fonctionne aussi avec HFE de GOTEK.
@silicebit Oh, donc je peux juste faire un "init" sur ma disquette de destination pour avoir le bon formatage, et après backup.
Je pensais que BACKUP ne marchait qu'avec les disquettes au format SEDORIC.
Ah mais donc tu veux pouvoir copier tout type de disquettes, avec un outil Sedoric ?
Dans ce cas il faudrait savoir où trouver le format de chaque type de disquette, ce que je t'avais indiqué n'est que pour les disquettes Sedoric.
J'avais déjà eu cette idée et Christian m'avait déjà répondu sur Jasmin ici ou sur l'ancien forum du CEO ou sur Defence Force (en gros de mémoire: pas d'info sur le disque je crois, mais juste 1 ou 2 formats).
Fabrice dans Readdsk, je crois qu'il lisait jusqu'à obtenir une erreur mais il faudrait revérifier, c'est trop vieux pour que je me souvienne avec précision.
PS concernant Nibble, il tente de lire la piste qu'on lui indique, donc il ne se soucie pas du format. Et en mode piste, il fait une lecture de piste à partir de la commande du FDC, mais comme c'est buggé avec des octets de synchro, il relit ensuite secteur par secteur (toujours à partir du FDC, et là ce n'est pas buggé) et remplace ce qui avait été lu par la commande de lecture de piste.
Ca limite les erreurs, mais il doit quand même en rester ici ou là dans les intervalles entre les secteurs.
Ah mais donc tu veux pouvoir copier tout type de disquettes, avec un outil Sedoric ?Dans ce cas il faudrait savoir où trouver le format de chaque type de disquette, ce que je t'avais indiqué n'est que pour les disquettes Sedoric.
Pas tout type de disquette, là ce qui m'intéresse c'est de pouvoir facilement dupliquer mon jeu Encounter sur une vrai disquette, donc vu que j'avais déja un Microdisc et un Gotek ca me semblait le plus simple.
En gros ma disquette c'est double face, 42 pistes, 17 secteurs par piste, et les premiers secteurs sont compatibles OricDOS/Sedoric/Jasmin histoire que ca charge le secteur de boot, mais après c'est mon système FloppyBuilder qui prend la main: Il n'y a pas de FAT/DIRECTORY, c'est juste des données écrites dans les secteurs et le jeu sait que "telle fichier commence a piste 23 sur le 5 eme secteur et ca prend 25 secteurs au total".
D'ou ma question: Est-ce que BACKUP copy n'importe quoi a partir du moment ou il arrive a determiner le nombre de pistes et secteurs, ou bien est-ce que ca ne peu copier que des disquettes au format SEDORIC.
Bonjour,
Je pense que la commande BACKUP ne fonctionnera pas dans ce cas parce qu'elle récupère le format de la disquette source qui est contenu dans le secteur de la bitmap.
Comme floppyBuilder ne génère pas ce secteur, BACKUP va se retrouver avec des informations incohérente et refuser de s'exécuter dans le meilleur des cas.
Sinon, le FTDos contient deux instructions qui permettent de lire et d'écrire un secteur d'une disquette, il "suffit" de reprendre ces deux routines pour pouvoir faire la copie.
Je m'en étais servi pour modifier le Forth K7 publié par Soracom pour qu'il utilise des disquettes avec un lecteur 5"1/4 et un formattage initial MS/DOS ou FTDos.
On doit aussi pouvoir utiliser les routines correspondantes de la commande BACKUP de Sedoric.
Le seul problème est que la disquette cible doit d'abord être formattée de la même façon que la disquette source et qu'il faut connaitre le nombre de pistes et de secteurs à copier.
L'entrelacement de la cible n'est pas modifié puisqu'il s'agit d'une copie secteur par secteur et non piste par piste qui est un peu plus problématique bien que faisable.
On peut aussi tenter de deviner le formattage de la source en lisant les secteurs d'une piste jusqu'à ce que le FDC retourne une erreur, de même pour trouver toutes les pistes mais dans ce cas il faudra aussi que le programme fasse le formattage de la cible et connaisse le facteur d'entrelacement sinon il ne sera pas respecté à moins de faire une copie piste par piste.
Si le formattage doit être fait par l'Oric est qu'il est différent du format de celui de l'OS utilisé en nombre de pistes et/ou de secteurs et/ou d'entrelacement alors il faut aussi faire une commande INIT ou FORMAT en conséquence.
Pour FTDos, le programme de formattage est en Basic donc facile à modifier, pour Sedoric INIT est dans une banque donc il faut modifier la banque si on veut changer l'ordre des secteurs (qui est fonction du numéro de piste en plus du facteur d'entrelacement).
@assinie https://forum.silicium.org/viewtopic.php?t=29481
A lire......avec les histoires de cable torsadés en plus il y a de quoi se perdre..............
Avoir la maitrise du code ca ouvre beaucoup de possibilités d' actions.
J' ai tenté de faire avec le cumana reborn(gotek intégré) et un lecteur 3,5" 720k en tentant INIT c:/18,41,S mais à chaque tentative le disque semblait se formater et à la fin j' ai eu " un message "WARNING Dos is altered " en rouge clignotant¨sans transfert de fichiers.... Le cumana reborn est composé du gotek en A et désigne C:/ le second lecteur 3,5 pouces 720k pour moi.
Il y a il me semble beaucoup de cas particuliers liés aux configurations et amalgames de matos différents.donc bien vérifier .........
Après quelques lectures j' ai trouvé un soft sur le GITHUB
IL semble fonctionné sous xp pour analyser une disquette /:il y a un descriptif....... 🙂 🙂
https://github.com/oric-software
Oricexplorer
Peut étre un pas vers la solution............
En plus il y a une version sur le site du Ceo,