|
De) functie int86x(0x13, &i, &o, &s haalt aan onderbreekt 13H met de Waarden van het segmentregister. De getdrivegeometry functie keert het totale aantal op aandrijving terug.
- In de belangrijkste functie (), (char)peekb(0x0040, 0x0075); (de functie wordt peekb bepaald in Dos H) keert het aantal harde schijven in bijlage aan het systeem terug.
Het aantal harde schijven die met het systeem worden verbonden wordt door de byte vertegenwoordigd die bij geheugenplaats 0040H:0075H wordt opgeslagen (Segment 0040H: Gecompenseerde 0075H). Als het aantal harde schijven die met het systeem worden verbonden minder toen is toont programma twee de foutenmelding en de uitgangen.
Sectors_in_HDD1 = getdrivegeometry (0x80); krijgt de parameters van eerste harde schijf (0x80) en keert het totale aantal sectoren op eerste harde schijf terug.
Zo ook Sectors_in_HDD2 = getdrivegeometry (0x81); krijgt de parameters van tweede harde schijf (0x81) en keert het totale aantal sectoren op tweede harde schijf terug.
Na bevestiging door de gebruiker om met weergave, eerste controle verder te gaan de voorwaarde dat de grootte van bron harde schijf niet zou moeten groter zijn toen de grootte van de bestemmings harde schijf. Als de bestemming kleiner is, toon de foutenmelding en de uitgang.
Als alles net gaat, kopiƫer de sectoren van de bronschijf aan de bestemmingsschijf. Hier lezen wij en schrijven tegelijkertijd 61440 Bytes (120 sectoren met elk van 512 Bytes) om het weergaveproces sneller te maken.
Als u meer sectoren, zelfs voorbij de grens van 64K wilt tegelijkertijd gebruiken, kunt u het doen door "reusachtige Wijzer" in groot geheugenmodel te gebruiken. Het Voorbeeld van Specificatie is als volgt:
char huge array[100000L];
- De Functie, readabsolutesectors (0x80, lijn, 120, buffer); leest de 120 sectoren van eerste harde schijf (0x80), beginnend van het sectoraantal dat door niet ondertekende lange geheellijn wordt gespecificeerd en slaan de gegevens in gegevensbuffer op.
- De Functie, writeabsolutesectors (0x81, lijn, 120, buffer); schrijft de gegevens van gegevensbuffer aan 120 sectoren van tweede harde schijf (0x81), beginnend van het sectoraantal dat door niet ondertekende lange geheellijn wordt gespecificeerd.
|
|