Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 29 Nov 2025, 17:38

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Commment détecter format DATA, System, Vendor, Ibm ?

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 1 sur 2
 [ 26 message(s) ]  Aller vers la page 1, 2  Suivant
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
sPOKE
 Sujet du message : Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 15 Jan 2013, 11:27 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 08 Fév 2012, 18:19
Message(s) : 375
Bonjour,

Je suis en train de ré-écrire la commande CAT en langage machine, et je souhaiterais détecter automatiquement
le formatage de la disquette. Il y a une routine sous Amsdos qui permet cela, c'est très facile,
mais comme c'est un utilitaire sous CP/M, je ne peux pas l'utiliser.

Si vous souhaitiez faire cette détection sous Amsdos (oubliez CP/M), comment vous y prendriez-vous ?
(sans utiliser la routine Amsdos de détection évidemment...)

Je souhaite détecter Data, System, Vendor et Ibm.

J'ai trouvé une astuce qui fonctionne déjà bien, mais peut être quelqu'un d'autre aura t-il une idée plus efficace encore. :)
Je pense qu'il y a un plus court chemin...


Haut
 Profil  
 
fano
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 15 Jan 2013, 11:51 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 15 Août 2008, 13:00
Message(s) : 968
Localisation : Troyes, France
Je serai tenté d'utiliser la commande READ ID du FDC pour déterminer le premier secteur valide et en déterminer le formatage.

_________________
"NOP" tel est le programme parfait ! court, rapide, lisible et sans bugs (connus)


Haut
 Profil  
 
sPOKE
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 15 Jan 2013, 11:58 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 08 Fév 2012, 18:19
Message(s) : 375
Je n'ai pas accès au FDC sous CP/M (qui n'a pas le droit de gérer le hardware). Je peux simplement lire les pistes et les secteurs.
Je peux uniquement me servir du contenu des pistes et des secteurs donc... une idée ? :sweatingbullets:


Haut
 Profil  
 
fano
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 15 Jan 2013, 12:08 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 15 Août 2008, 13:00
Message(s) : 968
Localisation : Troyes, France
C'est la seule méthode "propre" qui me vienne à l'esprit, d'ailleurs il me semble que AMSDOS procède de la sorte.
Je suis étonné que CP/M n'ait pas une fonction équivalente , il se borne donc ne reconnaitre que son format ?

_________________
"NOP" tel est le programme parfait ! court, rapide, lisible et sans bugs (connus)


Haut
 Profil  
 
sPOKE
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 15 Jan 2013, 12:17 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 08 Fév 2012, 18:19
Message(s) : 375
oui, il se borne à lire les pistes et les secteurs. Il peut lire les 3 formats, mais il ne les différencie pas.
D'ailleurs, il ne sait même pas qu'il tourne sur un AMstrad CPC car il est multi-machines.

Ce que je peux faire, c'est lire le contenu des secteurs de la disquette, pistes par piste, secteur par secteur.
Comme sous Amsdos en fait, sauf que je n'ai pas de routine de détection de format, ni accès au FDC.
Je dois me débrouiller avec ça.

C'est faisable car je l'ai fait, juste en analysant le contenu des secteurs.
Mais j'espère que quelqu'un aura trouvé une idée plus concise que la mienne.
Je dois insérer ça dans une routine la plus courte possible.


Haut
 Profil  
 
markerror
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 15 Jan 2013, 13:18 
Hors-ligne
VIP
VIP

Inscription : 04 Sep 2007, 19:43
Message(s) : 739
Bonjour,

Une technique bidon mais qui fonctionne sous Amsdos

- réduire le nombre de tentatives de lecture d'un secteur a une valeur n'entrainant pas un recalibrate
- essayer de lire un secteur avec l'ID secteur &C1
- si ca foire, essayer de lire un secteur avec l'ID &41 en piste 2
- si c'est bon, essayer de lire le secteur de boot CPM

Je ne sais plus trop, mais je pense que certains de mes utilitaires fonctionnent comme cela (oui, j'ai honte :-) ).

T&J/GPA


Haut
 Profil  
 
sPOKE
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 15 Jan 2013, 13:41 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 08 Fév 2012, 18:19
Message(s) : 375
markerror a écrit :
- réduire le nombre de tentatives de lecture d'un secteur a une valeur n'entrainant pas un recalibrate
C'est quoi un recalibrate ? tu réduis comment ?

markerror a écrit :
- essayer de lire un secteur avec l'ID secteur &C1
- si ca foire, essayer de lire un secteur avec l'ID &41 en piste 2
Je peux pas faire ça sous CP/M. J'ai seulement les données contenues dans les secteurs. Pas de &C1,&41 ou &01.

markerror a écrit :
- si c'est bon, essayer de lire le secteur de boot CPM
Ok, mais tu fais tes tests comment ? Pour détecter une Vendor par exemple ? ou une Ibm ? :)


Haut
 Profil  
 
shap
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 15 Jan 2013, 15:34 
Hors-ligne
VIP
VIP

Inscription : 26 Avr 2011, 15:27
Message(s) : 277
L'Amsdos utilise une méthode ultra bourrin, en fait il se base sur le nom des secteur.

Donc ça va tant que tu utilises des formats qui nomment les secteurs de façon différente mais si ce n'est pas le cas il ne sait pas faire.

Sinon en méthode propre (mais le temps de détection est plus long) il faut également vérifier le nombre de secteur par piste (seule manière pour différencier le format IBM de certains formats Parados notamment) et pour ce faire tu n'as pas le choix, il faut les compter.... donc c'est plus long...


Haut
 Profil  
 
shap
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 15 Jan 2013, 15:41 
Hors-ligne
VIP
VIP

Inscription : 26 Avr 2011, 15:27
Message(s) : 277
sPOKE a écrit :
markerror a écrit :
- réduire le nombre de tentatives de lecture d'un secteur a une valeur n'entrainant pas un recalibrate
C'est quoi un recalibrate ? tu réduis comment ?

Un recalibrate c'est une commande FDC qui permet de de faire revenir la tête de lecture en piste 0 (en fait ce n'est pas vraiment ça car ça renvoi la tête de lecture en arrière jusqu'à trouver la piste 0 mais avec un maximum de 77 impulsions (de mémoire), donc si tu as un lecteur 80 pistes et que tu es au delà de la piste 76, retourner en piste 0 nécessite deux commandes recalibrate)

sPOKE a écrit :
markerror a écrit :
- essayer de lire un secteur avec l'ID secteur &C1
- si ca foire, essayer de lire un secteur avec l'ID &41 en piste 2
Je peux pas faire ça sous CP/M. J'ai seulement les données contenues dans les secteurs. Pas de &C1,&41 ou &01.
A mon avis (mais je ne connais pas le CP/M) les routines systèmes doivent avoir ce genre de paramètre quelque part, (ou stockés en RAM dans un buffer quelconque)

sPOKE a écrit :
markerror a écrit :
- si c'est bon, essayer de lire le secteur de boot CPM
Ok, mais tu fais tes tests comment ? Pour détecter une Vendor par exemple ? ou une Ibm ? :)
Voir mon post précédent, mais si tu n'as pas accès au nom des secteurs et que tu ne peux pas les compter, ça va être compliqué :D


Haut
 Profil  
 
sPOKE
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 15 Jan 2013, 22:51 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 08 Fév 2012, 18:19
Message(s) : 375
shap a écrit :
A mon avis (mais je ne connais pas le CP/M) les routines systèmes doivent avoir ce genre de paramètre quelque part, (ou stockés en RAM dans un buffer quelconque)
Je n'ai rien trouvé, mais je vais regarder encore, sait-on jamais. Mais en attendant, j'ai besoin de faire sans.
shap a écrit :
Voir mon post précédent, mais si tu n'as pas accès au nom des secteurs et que tu ne peux pas les compter, ça va être compliqué :D
Non, pas d'accès au nommage. Je peux les compter, mais c'est pas suffisant car Data, System et Vendor ont chacun 9 secteurs.

Mais c'est vrai qu'il y a une routine pour faire ça sous AMSDOS, donc le problème ne se pose pas finalement pour les CPCistes.
Et je dois certainement être le seul fou à utiliser le format IBM sur CPC je pense. :sweatingbullets:

Ce format a néanmoins une utilité, car quand j'ai fait ingérer une disquette formatée IBM à Dir Doktor 1.1 (oui je sais, c'est sadique ^^ ) :
Pof! une bonne vieille Syntax Error!

Image

(une petite virgule après le PRINT#3 et ça devrait aller mieux)


Haut
 Profil  
 
markerror
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 16 Jan 2013, 08:16 
Hors-ligne
VIP
VIP

Inscription : 04 Sep 2007, 19:43
Message(s) : 739
Pffffff, vous en avez pas marre de trouver des bugs dans mes programmes :-).

Je corrigerai ça dès que possible, pour l'instant, je travaille sur autre chose...

T&J/GPA


Haut
 Profil  
 
Plissken
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 16 Jan 2013, 08:38 
Hors-ligne
Rulezzzz
Rulezzzz
Avatar de l’utilisateur

Inscription : 13 Nov 2007, 16:09
Message(s) : 911
Localisation : Gallifrey
markerror a écrit :
Pffffff, vous en avez pas marre de trouver des bugs dans mes programmes :-).

Je corrigerai ça dès que possible, pour l'instant, je travaille sur autre chose...

T&J/GPA


C'est peu etre un concours :D

_________________
Tout le monde il es beau,tout le monde il est gentil .


Haut
 Profil  
 
sPOKE
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 16 Jan 2013, 09:10 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 08 Fév 2012, 18:19
Message(s) : 375
markerror a écrit :
Pffffff, vous en avez pas marre de trouver des bugs dans mes programmes :-).
:D Haha, te plains pas, regarde ce qui se passe quand on fait lire un disquette formatée IBM à CP/M Plus : Ca plante !

Image
(je vais essayer de faire un correctif pour CP/M Plus si je peux, car j'aime bien pouvoir lire toutes mes disquettes)

P.S: J'ai corrigé le programme _Doktor.bas, je le mets ici en fichier joint, dans le dsk complet original.


Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.


Haut
 Profil  
 
shap
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 16 Jan 2013, 10:22 
Hors-ligne
VIP
VIP

Inscription : 26 Avr 2011, 15:27
Message(s) : 277
sPOKE a écrit :
Mais en attendant, j'ai besoin de faire sans.

Si tu ne peux pas accéder aux ID de secteurs, tu ne peux pas, c'est impossible.

Donc tu n'as plus qu'à chercher dans ton CP/M où il met ce genre d'infos (ou trouver des appels de routines système qui font ça).

De toute façon, le système est obligé de détecter le format (à moins qu'il n'en connaisse qu'un seul) et de toute façon il doit forcement accéder au FDC à un moment ou à un autre si il veut lire ses secteurs...


Haut
 Profil  
 
sPOKE
 Sujet du message : Re: Commment détecter format DATA, System, Vendor, Ibm ?
Message Publié : 16 Jan 2013, 11:25 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 08 Fév 2012, 18:19
Message(s) : 375
shap a écrit :
Si tu ne peux pas accéder aux ID de secteurs, tu ne peux pas, c'est impossible.
Si c'est possible. Je me suis servi du contenu des secteurs pour deviner le formatage, tout simplement.

shap a écrit :
De toute façon, le système est obligé de détecter le format (à moins qu'il n'en connaisse qu'un seul) et de toute façon il doit forcement accéder au FDC à un moment ou à un autre si il veut lire ses secteurs...
Oui, le Bios de CP/M est adapté sur chaque ordinateur sur lequel il tourne par le constructeur (Locomotive Software l'a fait pour Amstrad), mais un logiciel n'a pas le droit d'essayer d'accéder aux Rom de l'ordinateur hôte. Sinon, il ne pourrait plus tourner sur les autres ordinateurs CP/M.

Je peux en utilisant des instructions Z80 accéder aux Rom du CPC, mais pour ce programme-là (une commande CAT)
je souhaite uniquement utiliser la vraie programmation CP/M.

En fait, si je te donne uniquement le contenu des secteurs d'une disquette, tu dois pouvoir identifier son formatage parmi les 4.
Tu vois l'idée ? Je pense que tu as compris comment j'ai fait.


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 1 sur 2
 [ 26 message(s) ]  Aller vers la page 1, 2  Suivant

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 33 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.