Σχόλια στην κωδικοποίηση προγράμματος:
Στην κωδικοποίηση προγράμματος που δίνεται νωρίτερα, βασικά προχωράμε να εκτελέσουμε τους ακόλουθους στόχους βαθμιαία:
- σημεία dinfo στη δομή diskinfo_t που περιέχει τις πληροφορίες των παραμέτρων που απαιτούνται από τη λειτουργία που εκτελείται από τη _ λειτουργία bios_disk.
- Δεδομένου ότι πρόκειται να γράψουμε τις πληροφορίες για τον πρώτο τομέα του δίσκου επομένως η θέση του τομέα θα είναι η ακόλουθη:
Παράμετρος |
Αυτό που σημαίνει |
dinfo.drive = 0x00 |
Δείχνει την κίνηση 0 που είναι κίνηση δισκετών (α:) |
dinfo.head = 0 |
Δείχνει τον επικεφαλής αριθμό 0 |
dinfo.track = 0 |
Δείχνει τη διαδρομή 0 |
dinfo.sector = 1 |
Πρώτος τομέας της δισκέτας που είναι τομέας 1 |
dinfo.sector = 1 |
Ο αριθμός τομέων που εξετάζουν για γράφει τη λειτουργία = 1 |
dinfo.buffer = dbuf |
Απομονωτής στοιχείων για τη λειτουργία |
- Ανοίξτε το αρχείο στο οποίο οι πληροφορίες εικόνας μποτών 512 ψηφιολέξεων μιας φρέσκιας δισκέτας αποθηκεύτηκαν από το προηγούμενο πρόγραμμα. Το όνομα αρχείων και η πορεία αποθηκεύονται στη σειρά χαρακτήρα fname.
- Μονογράψτε τη χρησιμοποίηση συστημάτων δίσκων διακόπτει 13H (λειτουργία 00h) όπου regs.h.ah = 0x00 τα σημεία στη λειτουργία 00 χ και regs.h.dl = 0x00 χρησιμοποιούνται για το α: πλαδαρός. Και int86(0x13, ®s, ®s) επικαλούνται το MS-DOS διακόπτουν την υπηρεσία INT 13 χ.
- _ bios_disk(_DISK_WRITE, &dinfo) γράφει τις πληροφορίες μποτών από το διευκρινισμένο αρχείο στον πρώτο (καθορισμένο) τομέα της δισκέτας.
- Η θέση επιστρεφόμενη αποθηκεύεται στο αποτέλεσμα που χρησιμοποιείται για να επιδείξει το μήνυμα για την επιτυχή λειτουργία ή για να επιδείξει ένα μήνυμα λάθους στην οθόνη εάν οποιοδήποτε λάθος εμφανίζεται.
Το κάνετε με το ενιαίο πρόγραμμα
Ελπίζω, τώρα έχετε καταλάβει την έννοια πίσω από τέτοιο τύπο αποκατάστασης στοιχείων από τη δισκέτα. Μετά από αυτό φανταστείτε ένα ενιαίο πρόγραμμα που δίνει τα ίδια αποτελέσματα που πήραμε με τη βοήθεια προηγουμένως συζητημένος δύο προγράμματα.
Κάναμε τους ακόλουθους στόχους με τα πρόσφατα συζητημένα προγράμματα:
- Αποθηκεύστε τις πληροφορίες μποτών από μια καλή δισκέτα σε ένα αρχείο
- Κολλήστε αυτές τις πληροφορίες στον πρώτο τομέα της αυτήν την περίοδο δυσανάγνωστης δισκέτας το αρχείο που χρησιμοποιούσαμε για να αποθηκεύσουμε την εικόνα μποτών εργαζόμαστε ως ενδιάμεση γέφυρα για να συνδέσουμε τις διαδικασίες και του δύο προγράμματος. Αλλά εάν καθορίζουμε αυτές τις πληροφορίες μποτών στην κωδικοποίηση η ίδια προγράμματός μας, δεν πρέπει να δημιουργήσουμε ένα αρχείο καθώς επίσης και δεν πρέπει να διαβάσουμε τις πληροφορίες μποτών της δισκέτας από το αρχείο.
Στο επόμενο πρόγραμμά μας λέμε το πρόγραμμά μας για αυτό που πρέπει να γράψει στον πρώτο τομέα της δυσανάγνωστης δισκέτας και έτσι είμαστε σε θέση να αποφύγουμε δύο διαφορετικά προγράμματα για να κάνουμε τον ίδιο στόχο και μπορούμε να ανακτήσουμε τα στοιχεία μας με τον ίδιο τρόπο όπως πριν από το νέο ενιαίο πρόγραμμα.
Το πρόγραμμα γίνεται έτσι απλό με τη λιγότερη κωδικοποίηση και είμαστε σε θέση να μειώσουμε την πιθανότητα του περιστατικού του αρχείου που διαβάζεται, να γράψουμε ή του λάθος δημιουργιών. Κάνουμε τους ακόλουθους τέσσερις σημαντικούς στόχους σε αυτό το πρόγραμμα:
Μην σκεφτείτε το πρόγραμμα δύσκολο να γράψει και να καταλάβει με να δει τις δεκαεξαδικές πληροφορίες 512 ψηφιολέξεων dbuf[512 ]. Αργότερα, θα συζητήσουμε τον εύκολο τρόπο να γράψουμε αυτές τις πληροφορίες για την κωδικοποίηση προγράμματός σας. |
- Καθορίστε τις πληροφορίες αρχείων μποτών DOS στο δεκαεξαδικό σύστημα που γράφεται στον πρώτο τομέα της αυτήν την περίοδο δυσανάγνωστης δισκέτας.
- Επαναρυθμίστε το σύστημα δίσκων για να μονογράψετε τη δισκέτα (INT 13H, λειτουργία 00H).
- Γράψτε το αρχείο μποτών DOS στον πρώτο τομέα της δισκέτας
- Έλεγχος για την επιτυχή ολοκλήρωση της λειτουργίας και του λάθους, εάν εμφανίζεται.
|