Commentaires sur le codage de programme :
Dans le codage de programme donné plus tôt, fondamentalement nous nous poursuivons pour exécuter le suivant charge point par point :
- le dinfo se dirige à la structure de diskinfo_t qui contient l'information des paramètres exigés par l'opération effectuée par la fonction de _bios_disk.
- Car nous allons écrire l'information sur le premier secteur du disque donc l'endroit du secteur sera comme suit :
Paramètre |
Ce que signifie il |
dinfo.drive = 0x00 |
Il indique le lecteur 0 qui est l'unité de disquettes (a :) |
dinfo.head = 0 |
Il se dirige au numéro principal 0 |
dinfo.track = 0 |
Il se dirige à la voie 0 |
dinfo.sector = 1 |
Premier secteur du disque souple qui est le secteur 1 |
dinfo.sector = 1 |
Le nombre de secteurs à considérer pour écrivent l'opération = 1 |
dinfo.buffer = dbuf |
Les données protègent pour l'opération |
- Ouvrir le dossier dans lequel l'information d'image d'initialisation de 512 bytes d'un disque souple frais a été stockée par le programme précédent. Le nom de fichier et le chemin est stocké dans le fname d'ensemble de caractères.
- Initialiser le système de disque en utilisant l'interruption 13H (fonction 00h) où regs.h.ah = 0x00 se dirige à la fonction 00 H et regs.h.dl = 0x00 est employé pour a : souple. Et int86 (0x13, ®s, ®s) appelle le service 13 INTERNES H. d'interruption de MS-DOS.
- le _bios_disk (_DISK_WRITE, &dinfo) écrit l'information d'initialisation à partir du dossier indiqué au premier secteur (indiqué) de la disquette.
- Le statut retourné est stocké dans le résultat qui est employé pour montrer le message pour l'opération réussie ou pour montrer un message d'erreur sur l'écran si n'importe quelle erreur se produit.
Faisons-le avec le programme simple
J'espère, maintenant vous ai compris le concept derrière un tel type de rétablissement de données à partir de la disquette. Après que ceci nous ait laissés imaginer un programme simple qui donne les mêmes résultats qui nous avons obtenu avec l'aide des deux programmes discutés préalablement.
Nous faisions le suivant charge avec les programmes récemment discutés :
- Stocker l'information d'initialisation à partir d'une bonne disquette à un dossier
- Coller cette information au premier secteur du disque souple actuellement illisible
Le dossier que nous avions l'habitude de stocker l'image d'initialisation travaillait en tant que pont intermédiaire pour relier les opérations de tous les deux le programme. Mais si nous définissons cette information d'initialisation dans notre codage de programme elle-même, nous n'avons pas besoin de créer un dossier comme nous n'avons pas besoin de lire l'information d'initialisation du disque souple à partir du dossier.
Dans notre prochain programme nous disons notre programme au sujet de ce qu'il doit écrire dans le premier secteur de la disquette illisible et nous pouvons ainsi éviter deux programmes différents pour faire la même chose chargeons et nous pouvons récupérer nos données comme avant du nouveau programme simple.
Le programme devient ainsi simple avec moins de codage et nous pouvons réduire la probabilité de l'occurrence du dossier lue, des erreurs écrivons ou de créations. Nous faisons les quatre suivants importants charge dans ce programme :
Ne pas trouver le programme difficile à écrire et comprendre en voyant l'information hexadécimale de 512 bytes du dbuf [512]. Plus tard, nous discuterons la manière facile d'écrire cette information pour votre codage de programme. |
- Définir les informations sur les enregistrements d'initialisation de DOS dans le système hexadécimal à écrire dans le premier secteur du disque souple actuellement illisible.
- Remettre à zéro le système de disque pour initialiser la disquette (13H INTERNE, fonction 00H).
- Écrire le disque d'initialisation de DOS au premier secteur du disque souple
- Vérifier l'accomplissement réussi de l'opération et de l'erreur, si produit.
|