|
La funzione di int86x (0x13, &i, &o, &s) invoca l'interruzione 13H con i valori del registro di segmento. La funzione getdrivegeometry restituisce il numero totale su azionamento.
- () Nella funzione principale, peekb (del carbone) (0x0040, 0x0075); (il peekb di funzione è definito in DOS.H) restituisce il numero di dischi rigidi fissati al sistema.
Il numero di dischi rigidi ha collegato al sistema è rappresentato dal byte immagazzinato a posizione di memoria 0040H: 0075H (segmento 0040H: 0075H di derivazione). Se il numero di dischi rigidi collegati al sistema è meno allora il programma due mostra il messaggio e le uscite di errore. Sectors_in_HDD1 = getdrivegeometry (0x80); ottiene i parametri del primo disco rigido (0x80) e dei ritorni il numero totale di settori sul primo disco rigido. Similmente Sectors_in_HDD2 = getdrivegeometry (0x81); ottiene i parametri del secondo disco rigido (0x81) e dei ritorni il numero totale di settori sul secondo disco rigido. Dopo che conferma dall'utente da continuare con formazione immagine, controllo preliminare la circostanza che il formato del disco rigido di fonte non dovrebbe essere più grande allora il formato del disco rigido della destinazione. Se la destinazione è più piccola, visualizzare il messaggio di errore e rimuovere. Se tutto sta andando a destra, copiare i settori del disc di fonte al disc della destinazione. Qui siamo lettura e scrittura 61440 byte (120 settori con ciascuno di 512 byte) alla volta per rendere il processo di formazione immagine più veloce. Se desiderate usare più settori alla volta, anche oltre il limite di 64K, potete farli usando “l'indicatore enorme„ nel grande modello di memoria. L'esempio della specifica è come segue:
char huge array[100000L];
- La funzione, readabsolutesectors (0x80, ciclo, 120, amplificatore); legge i 120 settori del primo disco rigido (0x80), a partire dal numero del settore specificato dal ciclo lungo unsigned di numero intero e memorizzano i dati nell'amplificatore di dati.
- La funzione, writeabsolutesectors (0x81, ciclo, 120, amplificatore); redige i dati dell'amplificatore di dati a 120 settori del secondo disco rigido (0x81), a partire dal numero del settore specificato dal ciclo lungo unsigned di numero intero.
|
|