|
Η) λειτουργία int86x(0x13, &i, &o, &s επικαλείται διακόπτει 13H με τις τιμές καταλόγων τμήματος. Η getdrivegeometry λειτουργία επιστρέφει το συνολικό αριθμό στην κίνηση.
- Στην κύρια λειτουργία (), (char)peekb(0x0040, 0x0075) (η λειτουργία peekb καθορίζεται στο DOS χ) επιστρέφει τον αριθμό σκληρών δίσκων που συνδέονται με το σύστημα.
Ο αριθμός σκληρών δίσκων που συνδέονται με το σύστημα αντιπροσωπεύεται από την ψηφιολέξη που αποθηκεύεται στη θέση 0040H:0075H μνήμης (τμήμα 0040H: αντισταθμισμένο 0075H). Εάν ο αριθμός σκληρών δίσκων που συνδέονται με το σύστημα είναι λιγότερο έπειτα το πρόγραμμα δύο παρουσιάζει το μήνυμα λάθους και εξόδους.
Sectors_in_HDD1 = getdrivegeometry (0x80) παίρνει τις παραμέτρους του πρώτου σκληρού δίσκου (0x80) και επιστρέφει το συνολικό αριθμό τομέων σε πρώτο σκληρό δίσκο.
Ομοίως Sectors_in_HDD2 = getdrivegeometry (0x81) παίρνει τις παραμέτρους του δεύτερου σκληρού δίσκου (0x81) και επιστρέφει το συνολικό αριθμό τομέων σε δεύτερο σκληρό δίσκο.
Μετά από την επιβεβαίωση από το χρήστη για να συνεχιστεί με την απεικόνιση, πρώτος έλεγχος ο όρος ότι το μέγεθος του σκληρού δίσκου πηγής δεν πρέπει να είναι μεγαλύτερο έπειτα το μέγεθος του σκληρού δίσκου προορισμού. Εάν ο προορισμός είναι μικρότερος, επιδείξτε το μήνυμα λάθους και την έξοδο.
Εάν όλα πηγαίνουν δεξιά, αντιγράψτε τους τομείς του δίσκου πηγής στο δίσκο προορισμού. Εδώ διαβάζουμε και γράφουμε 61440 ψηφιολέξεις (120 τομείς με κάθε μια από 512 ψηφιολέξεις) σε έναν χρόνο να καταστήσει η διαδικασία απεικόνισης γρηγορότερη.
Εάν θέλετε να χρησιμοποιήσετε περισσότερους τομείς τη φορά, ακόμη και πέρα από το όριο 64K, μπορείτε να το κάνετε με τη χρησιμοποίηση του "τεράστιου δείκτη" στο μεγάλο πρότυπο μνήμης. Το παράδειγμα της προδιαγραφής είναι το ακόλουθο:
char huge array[100000L];
- Η λειτουργία, readabsolutesectors (0x80, βρόχος, 120, απομονωτής) διαβάζει τους 120 τομείς του πρώτου σκληρού δίσκου (0x80), αρχικός τον αριθμό τομέα που διευκρινίζεται από από τον ανυπόγραφο μακροχρόνιο βρόχο ακέραιων αριθμών και αποθηκεύει τα στοιχεία στον απομονωτή στοιχείων.
- Η λειτουργία, writeabsolutesectors (0x81, βρόχος, 120, απομονωτής) γράφει τα στοιχεία του απομονωτή στοιχείων σε 120 τομείς του δεύτερου σκληρού δίσκου (0x81), αρχικός από τον αριθμό τομέα που διευκρινίζεται από τον ανυπόγραφο μακροχρόνιο βρόχο ακέραιων αριθμών.
|
|