Hoofdstuk – 9
Werken met grote harde schijven
Werken met grote harde schijven
In het vorige hoofdstuk hebben we de BIOS-schijffuncties en het gebruik van interrupts voor toegang tot de fysieke media van harde schijven besproken. Daar gebruikten we de INT 13H-functies om toegang te krijgen tot harde schijven.
De INT 13H-interface ondersteunt veel verschillende opdrachten, zoals lezen, schrijven, formatteren en verifiëren, die kunnen worden doorgegeven aan het BIOS, dat ze vervolgens doorstuurt naar de harde schijf. Omdat INT13H al lange tijd door DOS werd gebruikt, was het jarenlang de standaard.
INT 13H wijst 24 bits toe voor de specificatie van de schijfgeometrie en vereist dat het aanroepende programma de specifieke parameters van de harde schijf kent en de routines voorziet van nauwkeurige kop-, cilinder- en sectoradressering om toegang te krijgen tot de schijf.
Het BIOS gebruikt de geometrie van de harde schijf zoals geconfigureerd in het BIOS-installatieprogramma. De 24 bits die door de INT 13H-interface zijn toegewezen voor de specificatie van de schijfgeometrie, zijn als volgt onderverdeeld:
- 10 bits voor cilindernummer. Het maximum aantal cilinders kan dus oplopen tot 1024.
- 8 bits voor hoofdnummer. Het maximum aantal doelpunten bedraagt dus 256.
- 6 bits voor sectornummer. Het maximale totale aantal sectoren kan dus 63 sectoren bedragen.
Het maximale aantal sectoren dat door deze aanpak wordt ondersteund, kan dus 1024 * 256 * 63 = 16515072 bedragen.
Dit betekent dat de INT13H-interface schijven met maximaal circa 16,5 miljoen sectoren kan ondersteunen. Bij 512 bytes per sector komt dit neer op maximaal 8,46 GB. Dat is precies wat ik wil uitleggen. Met al deze functies of INT 13H kunnen we dus alleen schijven tot 8,46 GB benaderen.
Daarom hebben de beperkingen van deze oude interface er de afgelopen jaren toe geleid dat deze is verlaten ten gunste van een nieuwe manier om harde schijven aan te spreken. Deze nieuwe manier wordt later in dit hoofdstuk beschreven.
Allereerst wil ik je een verhaal vertellen!
Elf jaar geleden, toen ik in de zevende klas zat, hoorde ik op school over een harde schijf van 42 MB. Misschien was het wel een WDA-L42 van IBM. Voor mij en mijn vrienden was het destijds heel moeilijk om ons een harde schijf met zo'n grote capaciteit voor te stellen.
De INT 13H-methodiek is ongeveer twintig jaar geleden ontwikkeld. Nu kunt u zien dat een harde schijf van 8 GB veel groter was dan iemand zich destijds zelfs in zijn dromen had kunnen voorstellen. Maar als we het vandaag de dag over een harde schijf van 8 GB hebben, zal een PC-gebruiker deze waarschijnlijk niet meer willen gebruiken, omdat de opslagcapaciteit ervan te klein is.
Daarom is de INT 13H-interface in moderne systemen uiteindelijk niet meer bruikbaar. INT 13H gebruikte 24 bits om schijfgeometrie toe te wijzen en helaas was het niet mogelijk om de bestaande BIOS INT 13H-interface uit te breiden. Als dat wel zou gebeuren, zouden veel oude hardware- en softwareproducten niet meer werken. U kunt zich voorstellen dat de huidige computermarkt zo'n grote verandering, waarbij miljoenen oude software- en hardwareproducten niet meer werken, nooit zal kunnen doorstaan.
Gezien deze omstandigheden werd INT 13H vervangen door een nieuwere interface, genaamd INT 13H extensions. INT 13H kan echter nog steeds worden gebruikt door DOS en sommige andere oudere besturingssystemen, en voor andere compatibiliteitsdoeleinden.
De nieuwe INT 13H-interface gebruikt 64 bits in plaats van 24 bits voor adressering en staat een maximale harde schijfgrootte toe van 9,4 * 1021 bytes, wat in werkelijkheid 9,4 biljoen gigabyte of 94000000000000 Gigabyte is. Hopelijk kunnen we nu even tot rust komen totdat deze grens is overschreden.
Hieronder worden enkele belangrijke uitbreidingsfuncties voor interrupt 13H beschreven. U kunt deze functies op dezelfde manier gebruiken bij het programmeren als de INT 13H-functies. Dit is ook de reden waarom deze functies INT 13H-extensies worden genoemd.
INT 13H-extensies:
INTERNE 13H (0x13)
Functie 1BH (0x1B of 27) --> Productieheader ophalen (ESDI vaste schijf)
Bellen met: AH = 1BH
AL = aantal te lezen sectoren
DL = rijden
ES:BX = Buffer voor productieheader
(lijst met gebreken)
Retourneert: Als de functie succesvol is
Vlag dragen = vrij
AH = 00X
Als de functie faalt
Vlag dragen = instellen
AH = status
Reacties:
Deze functie wordt gebruikt om de manufacturing header van de vaste schijf te verkrijgen. De eerste sector die wordt gelezen, bevat de manufacturing header met het aantal defect entries en het begin van de defect map; de overige sectoren bevatten de rest van de defect map. Manufacturing header format (Defect Map Record format) is te vinden in IBM 70MB, 115MB Fixed Disk Drives Technical Reference.
INT 13U (0x13)
Functie 1BH (0x1B of 27) --> Verkrijg een pointer naar het SCSI-schijfinformatieblok (Future Domain SCSI-controller)
Bellen met: AH = 1BH
DL = harde schijf-ID
Retourneert: Als de functie succesvol is
Vlag dragen = vrij
AH = 01H
Als de functie niet succesvol is
Vlag dragen = instellen
AH = status
ES:BX = SCSI-schijfinformatieblok
Reacties:
Deze functie wordt gebruikt om de pointer naar SCSI Disk Information Block te krijgen. Dit stelt ook een niet-resetbare vlag in die voorkomt dat sommige controllerberichten worden weergegeven.
INT 13U (0x13)
Functie 1CH (0x1C of 28) --> Pointer ophalen naar vrije controller-RAM (Future Domain SCSI-controller)
Bellen met: AH = 1CH
DL = harde schijf-ID voor elke geldige SCSI
harde schijf
Retourneert: Als de functie succesvol is
Vlag dragen = vrij
AH = 01H
Als de functie niet succesvol is
Vlag dragen = instellen
AH = status
ES:BX = eerste byte van het vrije RAM op de controller
Reacties:
Deze functie wordt gebruikt om de vrije controller Ram te krijgen. ES:BX wijst naar de eerste byte van vrije RAM op de controller, beschikbaar voor ander gebruik. ES bevat het segment waar de controller zich bevindt. De twee geheugen-gemapte I/O-poorten van de controller bevinden zich op offsets 1C00H en 1E00H.
INT 13U (0x13)
Functie 1C08H (0x1C08) --> Opdrachtvoltooiingsstatus ophalen (ESDI vaste schijf)
Aanroep met: AX = 1C08H
DL = rijden
ES:BX = buffer voor Command Complete
Statusblok
Terug: Als de functie succesvol is
Vlag dragen = vrij
AH = 01H
Als de functie niet succesvol is
Vlag dragen = instellen
AH = status
Reacties:
Deze functie wordt gebruikt om de Command Completion Status te verkrijgen. Als de functie succesvol is, is de carry-vlag gewist en als de functie niet succesvol is, wordt de carry-vlag ingesteld.
INT 13U (0x13)
Functie 1C09H (0x1C09) --> Apparaatstatus ophalen (ESDI vaste schijf)
Aanroep met: AX = 1C09H
DL = rijden
ES:BX = buffer voor Device Status Block
Terug: Als de functie succesvol is
Vlag dragen = vrij
AH = 01H
Als de functie niet succesvol is
Vlag dragen = instellen
AH = status
Reacties:
Deze functie wordt gebruikt om de apparaatstatus te verkrijgen. Als de functie succesvol is, is de carry-vlag gewist en als deze niet succesvol is, wordt de carry-vlag ingesteld.
INT 13U (0x13)
Functie 1C0AH (0x1C0A) --> Apparaatconfiguratie ophalen (ESDI vaste schijf)
Aanroep met: AX = 1C0AH
DL = rijden
ES:BX = buffer voor Drive Configuration Status
Blok
Terug: Als de functie succesvol is
Vlag dragen = vrij
AH = 01H
Als de functie niet succesvol is
Vlag dragen = instellen
AH = status
Reacties:
Deze functie wordt gebruikt om de apparaatconfiguratie voor de schijf op te halen. Als de functie succesvol is, is de carry-vlag leeg en is het AH-register 01H, anders is de carry-vlag ingesteld en retourneert het AH-register de status. De volgende tabel toont de indeling van het ESDI Drive Configuration Status Block:
Verschuiven
|
Maat
|
Beschrijving
|
00U
|
Byte
|
09U
|
01U
|
Byte
|
aantal woorden in blok (06H)
|
02U
|
Byte
|
vlaggen
|
03U
|
Byte
|
aantal reservesectoren per cilinder
|
04U
|
Dubbel woord
|
totaal aantal bruikbare sectoren
|
08U
|
Woord
|
totaal aantal cilinders
|
0AH
|
Byte
|
sporen per cilinder
|
0BH
|
Byte
|
sectoren per spoor
|
INT 13U (0x13)
Functie 1C0BH (0x1C0B) --> Adapterconfiguratie ophalen (ESDI vaste schijf)
Aanroep met: AX = 1C0BH
ES:BX = buffer voor controllerconfiguratie
Statusblok
Terug: Als de functie succesvol is
Vlag dragen = vrij
AH = 01H
Als de functie niet succesvol is
Vlag dragen = instellen
AH = status
Reacties:
Deze functie wordt gebruikt om de adapterconfiguratie op te halen. Als de functie succesvol is, is de carry-vlag gewist en is AH 01H. Als de functie niet succesvol is, wordt de carry-vlag ingesteld en retourneert AH de status.
INT 13U (0x13)
Functie 1C0CH (0x1C0C) --> POS-informatie ophalen (ESDI vaste schijf)
Aanroep met: AX = 1C0CH
ES:BX = buffer voor POS-informatiestatus
Blok
Terug: Als de functie succesvol is
Vlag dragen = vrij
AH = 01H
Als de functie niet succesvol is
Vlag dragen = instellen
AH = status
Reacties:
Deze functie wordt gebruikt om de POS-informatie te verkrijgen. Als de functie succesvol is, is de carry-vlag gewist en is AH 01H, als de carry-vlag niet succesvol is, wordt deze ingesteld en retourneert AH de status.
INT 13U (0x13)
Functie 1C0EH (0x1C0E) --> RBA naar ABA vertalen (ESDI vaste schijf)
Aanroep met: AX = 1C0EH
CH = lage 8 bits van cilindernummer
CL = sectornummer (hoge twee bits van
cilindernummer in bits 6 en 7)
DH = hoofdnummer
DL = schijfnummer
ES:BX = ABA (Absoluut Blok Adres)
nummer
Terug: Als de functie succesvol is
Vlag dragen = vrij
AH = 01H
Als de functie niet succesvol is
Vlag dragen = instellen
AH = status
Reacties:
Deze functie vertaalt het RBA (Relative Block Address) naar ABA (Absolute Block Address). Als de functie succesvol is, is de carry-vlag leeg en is het AH-register 01H, anders wordt de carry-vlag ingesteld en retourneert AH de status.
INT 13U (0x13)
Functie 20H (0x20 of 32) --> Huidig mediaformaat ophalen (Compaq ATAPI verwijderbaar media-apparaat)
Bellen met: AH = 20H
DL = schijfnummer
Terug: Als de functie succesvol is,
Vlag dragen = vrij
AL = mediatype
AH = 00H
Als de functie niet succesvol is,
CF = instellen
AH = foutcode
Reacties:
Deze functie wordt gebruikt om het huidige mediaformaat te verkrijgen. Waarden voor Compaq/ATAPI diskette mediatype zijn gegeven in de volgende tabel:
Waarde
|
Media
|
03U
|
720K (1M ongeformatteerd)
|
04U
|
1,44M (2M ongeformatteerd)
|
06U
|
2,88M (4M ongeformatteerd)
|
0CH
|
360K
|
0DH
|
1,2 miljoen
|
0EH
|
Toshiba 3-modus
|
0FH
|
NEC 3mode (1024 bytes per sector)
|
10 uur
|
ATAPI verwijderbaar media-apparaat
|
INT 13U (0x13)
Functie 21H (0x21 of 33) --> Meerdere schijfsectoren lezen (PS en PS/2, harde schijven)
Bellen met: AH = 21H
AL = aantal te lezen sectoren
CH = lage byte van 12-bits cilindernummer
CL = startsector (bits 0 tot 5) en bits 8
en 9 van cilinder (bits 6 en 7)
DH = hoofdnummer (bits 0 tot 5) en bits 10
en 11 van cilinder (bits 6 en 7)
DL = schijfnummer
ES:BX = Te lezen databuffer
Terug: Als de functie succesvol is,
Vlag dragen = vrij
ES:BX = Gevulde databuffer
Als de functie niet succesvol is,
Vlag dragen = instellen
AH = status
Reacties:
De functie wordt gebruikt om meerdere schijfsectoren te lezen met behulp van de modus voor meerdere blokken, waarbij alleen een interrupt wordt gegenereerd nadat een groep sectoren is overgedragen, en niet na elke sector.
INT 13U (0x13)
Functie 22H (0x22 of 34) --> Meerdere schijfsectoren schrijven (PS en PS/2, harde schijven)
Bellen met: AH = 22H
AL = aantal sectoren dat moet worden geschreven
CH = lage byte van 12-bits cilindernummer
CL = startsector (bits 0 tot 5) en bits 8
en 9 van cilinder (bits 6 en 7)
DH = hoofdnummer (bits 0 tot 5) en bits 10
en 11 van cilinder (bits 6 en 7)
DL = schijfnummer
ES:BX = buffer met te schrijven gegevens
Terug: Als de functie succesvol is,
Vlag dragen = vrij
AH = 01H
Als de functie niet succesvol is,
Vlag dragen = Set
AH = Status
Reacties:
De functie wordt gebruikt om meerdere schijfsectoren te beschrijven met behulp van de Multiple Block Mode, waarbij een interrupt pas wordt gegenereerd nadat een groep sectoren is overgedragen, en niet na elke sector.
INT 13U (0x13)
Functie 22H (0x22 of 34) --> Cache in-/uitschakelen (QuickCache II v4.20)
Bellen met: AH = 22H
AL = nieuwe status (00H, indien uitgeschakeld en 01H,
indien ingeschakeld)
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = status
Reacties:
Deze functie schakelt caching van alle schijven in en/of uit. Als de functie succesvol is, is het AX-register 0000H, anders wordt de status geretourneerd.
INT 13U (0x13)
Functie 23H (0x23 of 35) --> Controllerfunctiesregister instellen (PS en PS/2, harde schijf)
Bellen met: AH = 23H
AL = kenmerknummer
DL = schijfnummer
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
Als de functie niet succesvol is,
Vlag dragen = Set
AH = Status
Reacties:
Deze functie wordt gebruikt om het controller feature register in te stellen. Als de functie succesvol is, is de carry flag gewist en als de functie niet succesvol is, wordt de carry flag ingesteld en retourneert het AH register de status
INT 13U (0x13)
Functie 24H (0x24 of 36) --> Meerdere instellen – Overdrachtsmodus (harde schijf, PS en PS/2)
Bellen met: AH = 24H
AL = aantal sectoren per blok
DL = schijfnummer
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
Als de functie niet succesvol is,
Vlag dragen = Set
AH = Status
Reacties:
Deze functie wordt gebruikt om Multiple – Transfer Mode in te stellen. Als u de Multiple – Transfer Mode wilt uitschakelen, stelt u het aantal sectoren in op 0. De maximale waarde voor de blokgrootte (zoals 2,4,6,8 en 16 etc.) is afhankelijk van het type vaste schijf.
De waarde wordt opgeslagen in byte 15H van de vaste schijfparametertabel die is gemaakt door POST (Power On Self-Test). De byte op adres 0040H:0074H wordt ingesteld op de status van de werking. De waarden voor PS/1 harde schijf kenmerknummer zijn weergegeven in de volgende tabel:
Waarde
|
Beschrijving
|
01U
|
Selecteer 8-bits gegevensoverdracht in plaats van 16-bits
|
02U
|
Schrijfcache inschakelen
|
22 uur
|
Schrijf hetzelfde, door de gebruiker opgegeven gebied
|
33U
|
Opnieuw proberen uitschakelen
|
44U
|
Stel het aantal ECC-bytes in voor lang lezen/lang schrijven
|
54U
|
Cachesegmenten instellen
|
55H
|
Schakel vooruitkijken uit
|
66H
|
Terugzetten naar standaardinstellingen bij inschakelen uitschakelen
|
77H
|
Foutcorrectie uitschakelen
|
81H
|
Selecteer 16-bits gegevensoverdracht (standaard)
|
82H
|
Schrijfcache uitschakelen
|
88H
|
Foutcorrectie inschakelen (standaard)
|
99U
|
Opnieuw proberen inschakelen (standaard)
|
AA
|
Vooruitkijken mogelijk maken
|
BBH
|
Stel de ECC-lengte voor lezen/schrijven in op vier bytes
|
CCH
|
Terugkeren naar standaardinstellingen bij inschakelen inschakelen
|
DDH
|
Schrijf hetzelfde, hele schijf
|
INT 13U (0x13)
Functie 24H (0x24 of 36) --> Sectoren instellen (QuickCache II v4.20)
Bellen met: AX = 24H
BX = Nieuw aantal sectorbuffers in
bewaren
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om de sectoren in te stellen. Als de functie succesvol is, is het AX-register 0000H, anders retourneert AX de status.
INT 13U (0x13)
Functie 25H (0x25 of 37) --> Identificeer schijf (harde schijf, PS en PS/2)
Bellen met: AH = 25H
DL = Schijfnummer
ES:BX = Buffer van 512 bytes voor antwoordpakket
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
Buffer gevuld met schijfinformatieblok
Als de functie niet succesvol is,
Vlag dragen = Set
AH = Status
Reacties:
Deze functie wordt gebruikt om de Drive te identificeren. De byte op adres 0040h:0074h wordt ingesteld op de status van de bewerking. IBM classificeert deze functie officieel als optioneel. De Bit-velden voor algemene driveconfiguratie zijn in de volgende tabel gegeven:
Beetje(s)
|
Beschrijving
|
0
|
Gereserveerd (0)
|
1
|
Harde sectoren
|
2
|
Zachte sectoren
|
3
|
Niet MFM-gecodeerd
|
4
|
Kopschakeltijd groter dan 15 msec
|
5
|
Optie voor spindelmotorbesturing geïmplementeerd
|
6
|
Vaste aandrijving
|
7
|
Verwijderbare cartridge-aandrijving
|
8
|
De schijfoverdrachtssnelheid is kleiner dan of gelijk aan 5 Mbs
|
9
|
De schijfoverdrachtssnelheid is groter dan 5 Mbs, maar kleiner dan of gelijk aan 10 Mbs
|
10
|
De schijfoverdrachtssnelheid is groter dan 10 Mbs
|
11
|
Toerentaltolerantie is groter dan 0,5%
|
12
|
Datastrobische offset-optie beschikbaar
|
13
|
Track offset-optie beschikbaar
|
14
|
Formaat snelheid tolerantie kloof vereist
|
15
|
Gereserveerd voor niet-magnetische aandrijvingen (0)
|
De beschrijving van het informatieblok Formaat van de schijf zoals gegeven in de ATA (AT Attachment)-specificatie is opgenomen in de volgende tabel:
Verschuiven
|
Maat
|
Beschrijving
|
00U
|
WOORD
|
Algemene schijfconfiguratie
|
02U
|
WOORD
|
Aantal cilinders
|
04U
|
WOORD
|
Gereserveerd
|
06U
|
WOORD
|
Aantal hoofden
|
08U
|
WOORD
|
Aantal ongeformatteerde bytes per track
|
0AH
|
WOORD
|
Aantal ongeformatteerde bytes per sector
|
0CH
|
WOORD
|
Aantal sectoren per spoor
|
0EH
|
6 BYTES
|
Unieke verkoper
|
14 uur
|
20 BYTES
|
Serienummer in ASCII, (0000H=niet opgegeven)
|
28 uur
|
WOORD
|
Buffertype
|
2Ah
|
WOORD
|
Buffergrootte in stappen van 512 bytes (0000H=niet opgegeven)
|
2CH
|
WOORD
|
Aantal ECC-bytes doorgegeven bij Lees/Schrijf Lange opdrachten 0000H = niet gespecificeerd
|
2EH
|
8 BYTES
|
Firmware revisie in ASCII, 0000H=niet gespecificeerd
|
36H
|
40 BYTES
|
Modelnummer in ASCII, 0000H=niet opgegeven
|
5EH
|
WOORD
|
Bits 15-8 Vendor Unique, bits 7-0, (als 00H = Lees-/schrijfopdrachten niet geïmplementeerd, anders xxH = Maximaal aantal sectoren dat per interrupt kan worden overgedragen bij Lees- en schrijfopdrachten)
|
60U
|
WOORD
|
0000H = Kan geen dubbelwoord-I/O uitvoeren, 0001H = Kan dubbelwoord-I/O uitvoeren.
|
62H
|
WOORD
|
Bit 15-9 (0=gereserveerd), bit 8 (1=DMA ondersteund), bit 7-0 uniek voor leverancier.
|
64U
|
WOORD
|
Gereserveerd
|
66H
|
WOORD
|
Bits 15-8 PIO-gegevensoverdrachtcyclustimingmodus, Bits 7-0 Leveranciersuniek
|
68H
|
WOORD
|
Bits 15-8 DMA-gegevensoverdrachtcyclustimingmodus, Bits 7-0 Leveranciersuniek
|
6AH
|
WOORD
|
Bits 15-1 gereserveerd, bit 0 (1=de velden die in de vertaalmodus worden gerapporteerd, zijn geldig, 0=de velden die in de vertaalmodus worden gerapporteerd, kunnen geldig zijn)
|
6CH
|
WOORD
|
Aantal huidige cilinders
|
6EH
|
WOORD
|
Aantal huidige koppen
|
70H
|
WOORD
|
Aantal huidige sectoren per spoor
|
72H
|
DWORD
|
Huidige capaciteit in sectoren
|
76H
|
>WOORD
|
Gereserveerd
|
78H
|
136 BYTES
|
Niet gedefinieerd
|
100 uur
|
64 BYTES
|
Unieke verkoper
|
140H
|
96 BYTES
|
Gereserveerd
|
INT 13U (0x13)
Functie 25H (0x25 of 37) --> Flush-interval instellen (QuickCache II v4.20)
Bellen met: AH = 25H
BX = Interval van Flush
Terug: Als de functie succesvol is,
AH = 0000H
Als de functie niet succesvol is,
AH = status
Reacties:
Deze functie wordt gebruikt om het Flush Interval in te stellen. Als de functie succesvol is, is de AH 0000H, anders retourneert AH de status.
INT 13U (0x13)
Functie 26H (0x26 of 38) --> QuickCache II v4.20 verwijderen
Bellen met: AH = 26H
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = status
Reacties:
AX retourneert status van 0001H tot 00FFH voor interruptvector die door een andere TSR is gekoppeld
INT 13U (0x13)
Functie 27H (0x27 of 39) --> Installatiecontrole (QuickCache II v4.20)
Bellen met: AH = 27H
BX = 0000H
Terug: BH = Hoofdversie
BL = Binaire Minor Versie
Indien geïnstalleerd,
AX = 0000H
BX = Niet-nul
Reacties:
Indien geïnstalleerd, is AX Register 0000H en retourneert BX een waarde die niet nul is.
INT 13U (0x13)
Functie 28H (0x28 of 40) --> Automatische ontkoppeling instellen (QuickCache II v4.20)
Bellen met: AH = 28H
AL = Nieuwe Staat
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Roep de functie aan met AL = 00H om uit te schakelen en met AL = 01H om in te schakelen.
INT 13U (0x13)
Functie 29H (0x29 of 41) --> Geen bewerking (QuickCache II v4.20)
Bellen met: AH = 29H
Terug: AX = 0000H
INT 13U (0x13)
Functie 2AH (0x2A of 42) --> Buffergrootte instellen (QuickCache II v4.20)
Bellen met: AH = 2AH
AL = Buffergrootte
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om de buffergrootte in te stellen. Als de functie succesvol is, is de AX 0000H, als het niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 2BH (0x2B of 43) --> Drive Access Sounds (QuickCache II v4.20)
Bellen met: AH = 2BH
AL = nieuwe status (00h uitgeschakeld, 01h
ingeschakeld)
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Als de functie succesvol is, is de AX 0000H, als het niet succesvol is, retourneert AX de status. Roep de functie aan met AL = 00H om Drive Access Sounds uit te schakelen en AL = 01H om Drive Access Sounds in te schakelen
INT 13U (0x13)
Functie 2CH (0x2C of 44) --> Gebufferde schrijfbewerking instellen (QuickCache II v4.20)
Bellen met: AH = 2CH
AL = nieuwe staat
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie schakelt vertraagde schrijfbewerkingen voor alle schijven in of uit. Gebruik AH=38H om één schijf te wijzigen. Gebruik AL = 00H om uit te schakelen en 01H om in te schakelen.
INT 13U (0x13)
Functie 2DH (0x2D of 45) --> Gebufferde leesbewerking instellen (QuickCache II v4.20)
Bellen met: AH = 2Dh
AL = nieuwe status (00h uitgeschakeld, 01h
ingeschakeld)
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie schakelt read-ahead in of uit voor alle drives. Gebruik AL = 00H om uit te schakelen en AL = 01H om in te schakelen. Gebruik AH=37H om één drive te wijzigen.
INT 13U (0x13)
Functie 2EH (0x2E of 46) --> Flush-aantal instellen (QuickCache II v4.20)
Bellen met: AH = 2EH
BX = Flush-telling
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om de Flush Count in te stellen. Als de functie succesvol is, is de AX 0000H, als het niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 2FH (0x2F of 47) --> Forceer onmiddellijke incrementele flush (QuickCache II v4.20)
Bellen met: AH = 2FH
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Als de functie succesvol is, is de AX 0000H. Als de functie niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 30H (0x30 of 48) --> Informatie ophalen (QuickCache II v4.20)
Bellen met: AH = 30H
AL = Informatie Nummer (Zie Tabel in
Reacties)
DS:DX = buffer voor info
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om de verschillende soorten informatie over het systeem te verkrijgen, gespecificeerd door AL. Als de functie succesvol is, is de AX 0000H, als het niet succesvol is, retourneert AX de status. AX = 8000H geeft de ongeldige informatiespecificatie aan. Informatienummers die aan AL moeten worden gespecificeerd, zijn in de volgende tabel vermeld:
Waarde
|
Beschrijving
|
00U
|
Systeeminformatie
|
01U
|
Informatie over de aandrijving
|
02U
|
Toegangsfrequentie (array van 30 woorden)
|
03U
|
Schijfindex (array van 32 bytes die de BIOS-schijf voor DOS-schijf aangeeft)
|
INT 13U (0x13)
Functie 31H (0x31 of 49) --> Reservegeheugen (QuickCache II v4.20)
Bellen met: AH = 31H
BX = Aantal alinea's van
conventioneel geheugen om te reserveren voor
Toepassingen.
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om het geheugen te reserveren voor applicaties. Als de functie succesvol is, is de AX 0000H, als het niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 32H (0x32 of 50) --> Caching inschakelen voor specifieke schijf (QuickCache II v4.20)
Bellen met: AH = 32H
AL = schijfnummer
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om caching voor een specifieke drive in te schakelen. Roep bijvoorbeeld Function aan met AL = 00H voor A: enzovoort. Als de functie succesvol is, is de AX 0000H, als het niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 33H (0x33 of 51) --> Caching voor specifieke schijf uitschakelen (QuickCache II v4.20)
Bellen met: AH = 33H
AL = schijfnummer
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om caching voor een specifieke drive uit te schakelen. Roep bijvoorbeeld Function aan met AL = 00H voor A: enzovoort. Als de functie succesvol is, is de AX 0000H, als het niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 34H (0x34 of 52) --> Sector(en) vergrendelen/ontgrendelen (QuickCache II v4.20)
Bellen met: AH = 34H
AL = Nummer van de vergrendelings-/ontgrendelingsfunctie
(Zie de tabel in opmerkingen)
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om lock/unlock-functies van sectoren aan te roepen, gespecificeerd door AL. Als de functie succesvol is, is de AX 0000H, als het niet succesvol is, retourneert AX de status. De verschillende functienummers die met AL moeten worden aangeroepen, zijn in de volgende tabel gegeven:
Waarde
|
Functie
|
00U
|
Einde sector vergrendeling/ontgrendeling
|
01U
|
Vergrendel alle benaderde sectoren in de cache
|
02U
|
Ontgrendel alle geopende sectoren en verwijder ze uit de cache
|
INT 13U (0x13)
Functie 35H (0x35 of 53) --> Lock Pool-grootte instellen (QuickCache II v4.20)
Bellen met: AH = 35H
BX = Aantal sectoren in lockpool
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om de lock pool-grootte in te stellen. Als de functie succesvol is, is de AX 0000H, als het niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 36H (0x36 of 54) --> Trace Buffergrootte instellen
Bellen met: AH = 36H
AL = Nieuwe grootte van tracebuffer
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om de tracebuffergrootte in te stellen. Als de functie succesvol is, is de AX 0000H, als deze niet succesvol is, retourneert AX de status. Deze functie wordt meestal aangeroepen met functie 24H van INT 13H met AL=05H.
INT 13U (0x13)
Functie 37H (0x37 of 55) --> Gebufferde leesbewerkingen instellen voor specifieke schijf (QuickCache II v4.20)
Bellen met: AH = 37H
AL = Nieuwe staat
DL = Schijfnummer
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om gebufferde reads in te stellen voor een specifieke Drive. Als AL = 00H is de State ingeschakeld, anders uitgeschakeld. Als de functie succesvol is, is de AX 0000H, als het niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 38H (0x38 of 56) --> Gebufferde schrijfbewerkingen instellen voor specifieke schijf (QuickCache II v4.20)
Bellen met: AH = 38H
AL = Nieuwe staat
DL = Schijfnummer
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om gebufferde schrijfbewerkingen in te stellen voor een specifieke schijf. Als AL = 00H is de status ingeschakeld, anders uitgeschakeld. Als de functie succesvol is, is de AX 0000H, als deze niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 39H (0x39 of 57) --> Leesbuffergrootte instellen voor specifieke schijf (QuickCache II v4.20)
Bellen met: AH = 39H
AL = Nieuwe grootte van leesbuffer
DL = Schijfnummer
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om de leesbuffergrootte voor een specifieke schijf in te stellen, zoals DL = 00H voor A: enzovoort. Als de functie succesvol is, is de AX 0000H, als deze niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 3AH (0x3A of 58) --> Schrijfbuffergrootte instellen voor specifieke schijf (QuickCache II v4.20)
Bellen met: AH = 3AH
AL = Nieuwe grootte van schrijfbuffer
DL = Schijfnummer
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om de schrijfbuffergrootte voor een specifieke schijf in te stellen, zoals DL = 00H voor A: enzovoort. Als de functie succesvol is, is de AX 0000H, als deze niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 3DH (0x3D of 61) --> Cilinderspoeling voor aandrijving in-/uitschakelen (QuickCache II v4.20)
Bellen met: AH = 3DH
AL = Nieuwe staat
DL = schijfnummer
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om cilinderspoeling in of uit te schakelen voor een specifieke aandrijving, zoals DL = 00H voor A: enzovoort. Als de functie succesvol is, is de AX 0000H, als deze niet succesvol is, retourneert AX de status. Als het AL-register is ingesteld op 01H, is de status ingeschakeld, anders uitgeschakeld.
INT 13U (0x13)
Functie 3EH (0x3E of 62) --> Stel bonus voor één sector in (QuickCache II v4.20)
Bellen met: AH = 3EH
AL = Nieuwe waarde voor bonus
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om de Single-Sector Bonus in te stellen. Als de functie succesvol is, is de AX 0000H, als het niet succesvol is, retourneert AX de status.
INT 13U (0x13)
Functie 3FH (0x3F of 63) --> Bonusdrempel instellen (QuickCache II v4.20)
Bellen met: AH = 3FH
AL = Nieuwe waarde voor bonusdrempel
Terug: Als de functie succesvol is,
AX = 0000H
Als de functie niet succesvol is,
AX = Status
Reacties:
Deze functie wordt gebruikt om de bonusdrempel in te stellen. Als de functie succesvol is, is de AX 0000H, als de functie niet succesvol is, retourneert AX de status
INT 13U (0x13)
Functie 41H (0x41 of 65) --> Installatiecontrole (IBM/MS INT 13H-extensies)
Bellen met: AH = 41H
BX = 55AAH
DL = Schijfnummer (80H-FFH)
Terug: Als extensies worden ondersteund en de functie succesvol is,
Vlag dragen = Vrij
BX = AA55H
AH = Belangrijke versie van extensies (zie de
tabel in opmerkingen)
AL = Intern gebruik
CX = API-subset-ondersteuningsbitmap (zie de
Tabel in opmerkingen)
DH = Extensieversie (v2.0 en later)
Als de extensie niet wordt ondersteund of de functie niet succesvol is,
Vlag dragen = instellen
AH = 01H (functie ongeldig)
Reacties:
Deze functie controleert of de IBM/MS INT 13H Extensions zijn geïnstalleerd en ondersteund. Waarden voor hoofdversies van extensions zijn gegeven in de volgende tabel:
Waarde
|
Hoofdversie van extensie
|
01U
|
1.x
|
20 uur
|
2.0 / EDD-1.0
|
21 uur
|
2.1 / EDD-1.1
|
30U
|
EDD-3.0
|
De bitvelden voor de IBM/MS INT 13H Extensions API-ondersteuningsbitmap zijn in de volgende tabel weergegeven:
Beetje(s)
|
Beschrijving
|
0
|
Uitgebreide schijftoegangsfuncties (AH=42H, 43H, 44H, 47h en 48H) worden ondersteund.
|
1
|
Ondersteuning voor controllerfuncties voor verwijderbare schijven (AH=45H, 46H, 48H, 49H en INT15/AH =52H).
|
2
|
Verbeterde disk drive (EDD) functies (AH=48H en AH=4EH) ondersteund. Uitgebreide drive parameter tabel is geldig.
|
3-15
|
Gereserveerd (0)
|
INT 13U (0x13)
Functie 42H (0x42 of 66) --> Uitgebreid lezen (IBM/MS INT 13H-extensies)
Bellen met: AH = 42H
DL = Schijfnummer
DS:SI = Schijfadrespakket (zie de tabel in
reacties)
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
AH = 00H
Als de functie niet succesvol is,
Vlag dragen = Set
AH = foutcode
Reacties:
Deze functie is de uitbreiding voor de disk read-functie. Als de functie succesvol is, is de carry-vlag leeg en is het AH-register 00H, anders is de carry-vlag ingesteld en retourneert AH de foutcode. Het veld block count van het disk address-pakket wordt ingesteld op het aantal blokken dat succesvol is overgedragen. Het formaat van het disk address-pakket is hieronder gegeven:
Verschuiven
|
Maat
|
Beschrijving
|
00U
|
BYTE
|
Grootte van het pakket (10H)
|
01U
|
BYTE
|
Gereserveerd (0)
|
02U
|
WOORD
|
Aantal blokken om over te dragen
|
04U
|
DWORD
|
Overdrachtsbuffer
|
08U
|
QWORD
|
Begin absoluut bloknummer (LBA)
|
INT 13U (0x13)
Functie 43H (0x43 of 67) --> Uitgebreide schrijfbewerking (IBM/MS INT 13H-extensies)
Bellen met: AH = 43H
AL = schrijf vlaggen (zie de tabel in
reacties)
DL = schijfnummer.
DS:SI = schijfadrespakket
Terug: Als de functie succesvol is,
Vlag dragen = vrij
AH = 00H
Als de functie niet succesvol is,
Vlag dragen = instellen
AH = foutcode
Reacties:
Deze functie is de uitbreiding voor de disk-schrijffunctie. Als de functie succesvol is, is de carry-vlag leeg en is het AH-register 00H, anders is de carry-vlag ingesteld en retourneert AH de foutcode. Het veld voor het aantal blokken van het disk-adrespakket is succesvol ingesteld op het aantal blokken. De informatie over schrijfvlaggen voor verschillende versies is in de volgende tabel weergegeven:
Versie 1.0 en 2.0
|
Versie 2.1 en later
|
Waarde
|
Beschrijving
|
Waarde
|
Beschrijving
|
Beetje 0
|
Verifiëren Schrijven
|
00H en 01H
|
Schrijven zonder Verifiëren
|
Bits 1 tot en met 7
|
Gereserveerd (0)
|
02U
|
Schrijven met verifiëren
|
INT 13U (0x13)
Functie 44H (0x44 of 68) --> Sectoren verifiëren (IBM/MS INT 13H-extensies)
Bellen met: AH = 44H
DL = schijfnummer
DS:SI = schijfadrespakket
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
AH = 00H
Als de functie niet succesvol is,
Vlag dragen = Set
AH = foutcode
Reacties:
Deze functie is de uitbreiding voor de functie Verify Sectors. Als de functie succesvol is, is de carry-vlag leeg en is het AH-register 00H, anders is de carry-vlag ingesteld en retourneert AH de foutcode. Het veld block count van het disk address-pakket is succesvol ingesteld op number of blocks
INT 13U (0x13)
Functie 45H (0x45 of 69) --> Schijf vergrendelen/ontgrendelen (IBM/MS INT 13H-extensies)
Bellen met: AH = 45H
AL = Operatienummer (zie de tabel in
reacties)
DL = Schijfnummer
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
AH = 00H
AL = Vergrendelde status (00H = Ontgrendeld)
Als de functie niet succesvol is,
Vlag dragen = Set
AH = Foutcode
Reacties:
Deze functie wordt gebruikt om de drive te vergrendelen/ontgrendelen. Deze functie moet worden ondersteund voor alle verwijderbare drives met nummer 80H of hoger. Er kunnen maximaal 255 vergrendelingen op een drive worden geplaatst en de media worden niet fysiek ontgrendeld totdat alle vergrendelingen zijn verwijderd.
Als de functie succesvol is, is de carry-vlag leeg en is het AH-register 00H. Anders wordt de carry-vlag ingesteld en retourneert AH de foutcode.
De bedieningsnummers voor verschillende vergrendel-/ontgrendelingsbedieningen van de aandrijving zijn in de volgende tabel weergegeven:
Waarde
|
Functie
|
00U
|
Media in station vergrendelen
|
01U
|
Media ontgrendelen
|
02U
|
Controleer de vergrendelingsstatus
|
INT 13U (0x13)
Functie 46H (0x46 of 70) --> Media uitwerpen (IBM/MS INT 13H-extensies)
Bellen met: AH = 46H
AL = 00H (gereserveerd)
DL = Schijfnummer
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
AH = 00H
Als de functie niet succesvol is,
Vlag dragen = Set
AH = foutcode
Reacties:
Deze functie is om media uit te werpen. Als de functie succesvol is, is de carry-vlag leeg en is het AH-register 00H, anders is de carry-vlag ingesteld en retourneert AH de foutcode.
INT 13U (0x13)
Functie 47H (0x47 of 71) --> Uitgebreide zoekfunctie (IBM/MS INT 13H-extensies)
Bellen met: AH = 47H
DL = Schijfnummer
DS:SI = Schijfadrespakket
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
AH = 00H
Als de functie niet succesvol is,
Vlag dragen = Set
AH = foutcode
Reacties:
Deze functie is de uitbreiding voor de zoekfunctie. Als de functie succesvol is, is de carry-vlag leeg en is het AH-register 00H, anders wordt de carry-vlag ingesteld en retourneert AH de foutcode. Het veld block count van het disk address-pakket wordt succesvol ingesteld op number of blocks.
INT 13U (0x13)
Functie 48H (0x48 of 72) --> Schijfparameters ophalen (IBM/MS INT 13H-extensies)
Bellen met: AH = 48H
DL = Aandrijving (80H-FFH)
DS:SI = Buffer voor aandrijfparameters
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
AH = 00H
DS:SI = Buffer gevuld
Als de functie niet succesvol is,
Vlag dragen = Set
AH = Foutcode
Reacties:
Deze functie wordt gebruikt om de drive parameters op te halen. Als de functie succesvol is, is de carry flag leeg en is het AH register 00H met DS:SI van Filled buffer, anders is de Carry flag ingesteld en retourneert AH de foutcode.
INT 13U (0x13)
Functie 49H (0x49 of 73) --> Uitgebreide mediawijziging (IBM/MS INT 13H-extensies)
Bellen met: AH = 49H
DL = Schijfnummer (elk schijfnummer, zie
Reacties)
Terug: Als de media niet zijn gewijzigd,
Vlag dragen = Vrij
AH = 00H
Als de media mogelijk zijn gewijzigd,
Vlag dragen = Set
AH = 06H (Foutcode voor mediawijziging)
Reacties:
Deze functie is de uitbreiding voor de media change-functie. Als de functie succesvol is, is de carry-vlag leeg en is het AH-register 00H, anders is de carry-vlag ingesteld en retourneert AH de foutcode.
Het belangrijkste verschil tussen deze functie en de functie AH = 16H of INT 13H is dat we elk schijfnummer kunnen specificeren, terwijl Functie 16H alleen schijfnummers 00H tot en met 7FH van floppydisks toestaat.
INT 13U (0x13)
Functie 4AH (0x4A of 74) --> Start schijfemulatie (opstartbare CD-ROM)
Bellen met: AH = 4AH
AL = 00H
DS:SI = Specificatiepakket (zie de tabel in opmerkingen)
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
Als de functie niet succesvol is,
Vlag dragen = Set
AX = Statuscode
Reacties:
Deze functie wordt gebruikt om de schijfemulatie te starten. Als de functie succesvol is, is de carry-vlag leeg, anders is de carry-vlag ingesteld en retourneert het AX-register de statuscode en bevindt de schijf zich niet in de emulatiemodus.
De indeling van het opstartbare CD-ROM-specificatiepakket is weergegeven in de volgende tabel:
Verschuiven
|
Maat
|
Beschrijving
|
00U
|
BYTE
|
Grootte van het pakket in bytes (13H)
|
01U
|
BYTE
|
Opstartmediatype
|
02U
|
BYTE
|
Schijfnummer
Schijfnummer
|
Beschrijving van de schijf
|
00U
|
Floppy-afbeelding
|
80U
|
Opstartbare harde schijf
|
81H naar FFH
|
Niet opstartbaar of geen emulatie
|
|
03U
|
BYTE
|
CD-ROM-controllernummer
|
04U
|
DWORD
|
Logisch blokadres van schijfkopie naar Emu
|
08U
|
WOORD
|
Apparaatspecificatie
Waarde
|
Beschrijving
|
(IDE) Bit0
|
Drive is slaaf in plaats van master
|
(SCSI) Bits 0 tot 7
|
LUN (Logisch Eenheidsnummer) en PUN (Fysisch Eenheidsnummer)
|
Bits 8 tot 15
|
Busnummer
|
|
0AH
|
WOORD
|
Segment van 3Kb buffer voor het cachen van CD-ROM-lezingen
|
0CH
|
WOORD
|
Segment laden voor initiële bootimage (indien 0000H, laden op segment 07C0H)
|
0EH
|
WOORD
|
Aantal virtuele sectoren van 512 bytes om te laden (alleen geldig voor functie 4CH van INT 13H)
|
10 uur
|
BYTE
|
Lage byte van cilindertelling (voor functie 08H van INT 13H)
|
11 uur
|
BYTE
|
Sectortelling, hoge bits van cilindertelling (voor Functie 08H van INT 13H)
|
12 uur
|
BYTE
|
Hoofdtelling (voor Functie 08H van INT 13H)
|
De bitvelden voor het opstartmediatype van een opstartbare CD-ROM zijn in de volgende tabel weergegeven:
Beetje(s)
|
Beschrijving
|
3-0
|
Mediatype
Waarde
|
Beschrijving
|
0000
|
Geen emulatie.
|
0001
|
1,2M diskette.
|
0010
|
1,44M diskette.
|
0011
|
2,88M diskette.
|
0100
|
Harde schijf (station C:)
|
Ander
|
Gereserveerd
|
|
5-4
|
Gereserveerd (0)
|
6
|
Afbeelding bevat ATAPI-driver
|
7
|
Afbeelding bevat SCSI-driver(s)
|
INT 13U (0x13)
Functie 4B00H (0x4B00) --> Beëindig schijfemulatie (opstartbare CD-ROM)
Bellen met: AX = 4B00H
DL = Drivenummer (of 7FH om te beëindigen
alle emulaties)
DS:SI = Leeg specificatiepakket
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
Als de functie niet succesvol is,
Vlag dragen = Set
AX = Statuscode
DS:SI = Specificatiepakket ingevuld
Reacties:
Deze functie wordt gebruikt om de schijfemulatie te beëindigen. Als u alle emulaties wilt beëindigen, roept u de functie aan met DL = 7FH. Als de functie succesvol is, is de carry-vlag leeg, anders is de carry-vlag ingesteld en retourneert het AX-register de statuscode en blijft de schijf in de emulatiemodus.
INT 13U (0x13)
Functie 4B01H (0x4B01) --> Status ophalen (opstartbare CD-ROM)
Bellen met: AX = 4B01H
DL = Schijfnummer
DS:SI = Leeg specificatiepakket
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
Als de functie niet succesvol is,
Vlag dragen = Set
AX = Statuscode
DS:SI = Specificatiepakket ingevuld
Reacties:
De functie wordt gebruikt om de status op te halen. Als de functie succesvol is, is de carry-vlag leeg, anders is de carry-vlag ingesteld en retourneert het AX-register de statuscode
INT 13U (0x13)
Functie 4CH (0x4C of 76) --> Start schijfemulatie en opstarten (opstartbare cd-rom)
Bellen met: AH = 4CH
AL = 00H
DS:SI = Specificatiepakket
Terug: Als de functie succesvol is,
Niets
Als de functie niet succesvol is,
Vlag dragen = Set
AX = Statuscode
Reacties:
Deze functie wordt gebruikt om de schijfemulatie te initiëren en het systeem op te starten. Als de functie succesvol is, wordt er niets anders geretourneerd, wordt de carry-vlag ingesteld en retourneert het AX-register de statuscode.
INT 13U (0x13)
Functie 4D00H (0x4D00) --> Bootcatalogus retourneren (opstartbare cd-rom)
Aanroepen met: AX = 4D00H
DS:SI = Opdrachtpakket (zie de tabel in
reacties)
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
Als de functie niet succesvol is,
Vlag dragen = Set
AX = Statuscode
Reacties:
Deze functie wordt gebruikt om de bootcatalogus te retourneren. Als de functie succesvol is, is de carry-vlag leeg, anders is de carry-vlag ingesteld en retourneert het AX-register de statuscode. De indeling van de opstartbare cd-rom van het opdrachtpakket "Get Boot Catalog" is gegeven in de volgende tabel:
Verschuiven
|
Maat
|
Beschrijving
|
00U
|
BYTE
|
Grootte van het pakket in bytes (08H)
|
01U
|
BYTE
|
Aantal sectoren van de bootcatalogus om te lezen
|
02U
|
DWORD
|
Buffer voor bootcatalogus
|
06U
|
WOORD
|
Eerste sector in bootcatalogus om over te dragen
|
INT 13U (0x13)
Functie 4EH (0x4E of 78) --> Hardwareconfiguratie instellen (IBM/MS INT 13H Extensions v2.1)
Bellen met: AH = 4EH
AL = Functienummer (zie de tabel in opmerkingen)
DL = Schijfnummer
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
AH = 00H
Als de functie niet succesvol is,
Vlag dragen = Set
AH = foutcode
AL = Status
Reacties:
Deze functie wordt gebruikt om de hardwareconfiguratie in te stellen. De functienummers voor AL om deze functie aan te roepen, zijn in de volgende tabel gegeven:
Waarde
|
Beschrijving
|
00U
|
Prefetch inschakelen
|
01U
|
Prefetch uitschakelen
|
02U
|
Maximale PIO-overdrachtsmodus instellen
|
03U
|
Stel PIO-modus 0 in
|
04U
|
Standaard PIO-overdrachtsmodus instellen
|
05U
|
Schakel INT 13H DMA maximale modus in
|
06U
|
INT 13H DMA uitschakelen
|
DMA- en PIO-modi sluiten elkaar uit. Als u DMA selecteert, wordt PIO daarom uitgeschakeld voor het opgegeven apparaat of voor alle apparaten op die controller. Als u PIO selecteert, wordt DMA uitgeschakeld.
INT 13U (0x13)
Functie 5001H (0x5001) --> Pakketopdracht verzenden (Enhanced Disk Drive Spec v3.0)
Bellen met: AX = 5001H
DL = Schijfnummer
ES:BX = Opdrachtpakket (zie de tabel in
reacties)
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
AH = 00H
Als de functie niet succesvol is,
Vlag dragen = Set
AH = foutcode
Reacties:
Deze functie wordt gebruikt om de pakketopdrachten te verzenden. Als de functie succesvol is, is de carry-vlag leeg en is het AH-register 00H, anders is de carry-vlag ingesteld en retourneert AH de foutcode. De indeling van het Enhanced Disk Drive Spec v3.0-opdrachtpakket is in de volgende tabel weergegeven:
Verschuiven
|
Maat
|
Beschrijving
|
00U
|
WOORD
|
Handtekening B055H
|
02U
|
BYTE
|
Lengte van het pakket in bytes
|
03U
|
BYTE
|
Gereserveerd (0)
|
04U
|
N BYTE's
|
Geformatteerde pakketgegevens
|
INT 13U (0x13)
Functie 5501H (0x5501) --> Aanvraag (Seagate ST01/ST02)
Bellen met: AX = 5501H
DH = Aantal bytes om over te dragen
DL = Schijfnummer
ES:BX = Buffer voor resultaten
Opbrengst
ES:BX-buffer, gevuld met de onderzoeksresultaten.
Reacties:
Deze functie wordt gebruikt om een aanvraag te verzenden. De ST01/ST02 BIOS retourneert geen succes- of mislukkingsindicatie voor de functie, daarom moet worden aangenomen dat alle opdrachten succesvol zijn geweest.
De ST01/ST02 BIOS mappen hun drives altijd na de vorige BIOS drives zonder het BIOS drive-aantal te wijzigen op 0040H:0075H. Deze opdracht is identiek aan de SCSI Inquiry-opdracht
INT 13U (0x13)
Functie 5502H (0x5502) --> Gereserveerd (Seagate ST01/ST02)
INT 13U (0x13)
Functie 5503H (0x5503) --> DTQ (Device Type Qualifier) instellen (Seagate ST01/ST02)
Bellen met: AX = 5503H
DH = DTQ-byte (zie de tabel in
reacties)
DL = Schijfnummer
Retour: Niets
Reacties:
Deze functie wordt gebruikt om de DTQ (Device Type Qualifier) in te stellen. De functie retourneert niets. De Bit-velden voor DTQ-byte zijn weergegeven in de volgende tabel:
Beetje(s)
|
Beschrijving
|
0
|
Seagate-installatiesoftware aanwezig
|
1
|
Geselecteerde schijf is geïnstalleerd
|
2
|
Hostadapter controleert pariteit op de geselecteerde schijf
|
3
|
Geselecteerde drive is ST225N
|
4
|
Geselecteerde drive is gekoppeld ST225N/NP
|
5
|
Gereserveerd
|
6
|
SCSI-schijf aangesloten
|
7
|
Gereserveerd
|
INT 13U (0x13)
Functie 5504H (0x5504) --> Retouridentificatie (Seagate ST01/ST02)
Bellen met: AX = 5504H
DL = Schijfnummer
Opbrengst:
BIJL = 4321H
BL = geselecteerd schijfnummer (00H, 01H)
BH = aantal schijven dat aan de host is gekoppeld
Adapter
Reacties:
Functie wordt gebruikt om de identificatie van de schijf(en) te retourneren.
INT 13U (0x13)
Functie 5505H (0x5505) --> Parkeerkoppen (Seagate ST01/ST02)
Bellen met: AX = 5505H
DL = Schijfnummer
DH = Subfunctie (zie de opmerkingen)
Opbrengst:
Niets
Reacties:
De functie wordt gebruikt om de koppen van de schijf te parkeren. Het werd gebruikt in de oude harde schijven, maar de moderne harde schijven hebben geen extern programma nodig om hun koppen te parkeren.
De Sub-functie 00H parkeert de koppen (SCSI Stop-opdracht) en Sub-functie 01H parkeert de koppen van de schijf (SCSI Start-opdracht).
INT 13U (0x13)
Functie 5506H (0x5506) --> SCSI-buspariteit (Seagate ST01/ST02)
Bellen met: AX = 5506H
DL = Schijfnummer
DH = Subfunctie Nummer (zie
Reacties)
Opbrengst:
AL = Status (00H pariteitscontrole)
uitgeschakeld, 01H pariteitscontrole ingeschakeld)
Reacties:
Roep de functie aan met het volgende subfunctienummer voor DH:
Waarde
|
Beschrijving
|
00U
|
Pariteitscontrole uitschakelen
|
01U
|
Pariteitscontrole inschakelen
|
02U
|
Huidige pariteitsinstelling teruggeven
|
INT 13U (0x13)
Functie 5507H (0x5507) Naar Functie 550DH (0x550D) --> Gereserveerde functies (Seagate ST01/ST02)
Bellen met: AX = 5507H naar AX = 550DH
Reacties:
Deze functies zijn officieel vermeld als "Gereserveerd"
INT 13U (0x13)
Functie A0H (0xA0 of 160) --> Resident Code Segment ophalen (Super PC-Kwik v3.20 en later)
Aanroep met: AH = A0H
ALS = 4358H
Opbrengst:
AX = Segment van Resident Code
Reacties:
Deze functie wordt gebruikt om het residente codesegment op te halen. AX retourneert het segment van de residente code.
INT 13U (0x13)
Functie A1H (0xA1 of 161) --> Flush Cache (Super PC-Kwik v3.20 en later)
Aanroepen met: AH = A1H
ALS = 4358H
Opbrengst:
Vlag dragen = Vrij
AH = 00H (v5.10)
Reacties:
De functie wordt gebruikt om de cache te legen.
INT 13U (0x13)
Functie A3H (0xA3 of 163) --> Cache uitschakelen (Super PC- Kwik v3.20 en later)
Bellen met: AH = A3H
ALS = 4358H
Opbrengst:
Vlag dragen = Vrij
Reacties:
Functie om de cache uit te schakelen.
INT 13U (0x13)
Functie A4H (0xA4 of 164) --> Cache inschakelen (Super PC-Kwik v3.20 en later)
Bellen met: AH = A4H
ALS = 4358H
Opbrengst:
Vlag dragen = Vrij
Reacties:
Deze functie wordt gebruikt om de cache in te schakelen.
INT 13U (0x13)
Functie EEH (0xEE of 238) --> Stel 1024-cilindervlag in (SWBIOS)
Bellen met: AH = EEH
DL = Schijfnummer
Opbrengst:
Vlag dragen = Vrij
AH = 00H
Reacties:
De functie wordt gebruikt om 1024 – Cylinder flag in te stellen. De flag wordt gewist door alle INT 13H calls behalve AH=EEH en AH=EFH. Disk Manager ondersteunt deze calls ook. Deze functie is equivalent aan het aanroepen van functie AH=EFH met CX=0400H voor de software die deze call ondersteunt.
Deze functie wordt ook ondersteund door HyperDisk v4.01 en hoger, en PC-Cache v5.5 en hoger, om caching van schijven met behulp van SWBIOS mogelijk te maken voor toegang tot meer dan 1024 cilinders.
INT 13U (0x13)
Functie EFH (0xEF of 239) --> Cilinderoffset instellen (Ontrack Drive Rocket)
Bellen met: AH = EFH
CX = Cilinderoffset voor volgende INT 13H-oproep
DL = Schijfnummer
Opbrengst:
Vlag dragen = Vrij
AH = 00H
Reacties:
De functie wordt gebruikt om de cilinderoffset in te stellen. Voor software die deze aanroep ondersteunt, is de functie AH=EEH equivalent aan het aanroepen van deze functie met CX=0400H. De cilinderoffset wordt door alle aangeroepen INT 13H, behalve AH=EEH en AH=EFH, gereset naar 0.
INT 13U (0x13)
Functie F9H (0xF9 of 249) --> Installatiecontrole (SWBIOS)
Bellen met: AH = F9H
DL = Schijfnummer
Terug: Als de functie succesvol is,
Vlag dragen = Vrij
DX = Configuratiewoord (zie opmerkingen)
Als de functie niet succesvol is,
Vlag dragen = Set
Reacties:
Deze functie wordt gebruikt voor installatiecontrole. Als de functie succesvol is, is de carry-vlag leeg en retourneert DX het configuratiewoord, anders is de carry-vlag ingesteld.
Bit 15 wordt ingesteld als andere SWBIOS-extensies beschikbaar zijn. Disk Manager ondersteunt deze aanroepen ook.
INT 13U (0x13)
Functie FEH (0xFE of 254) --> Uitgebreide cilindertelling ophalen (SWBIOS)
Bellen met: AH = FEH
DL = Schijfnummer
Opbrengst:
Vlag dragen = Vrij
DX = Aantal cilinders boven 1024
op de rit
Reacties:
Deze functie wordt gebruikt om de uitgebreide cilindertelling te verkrijgen. De functie AH = 08H van INT 13H retourneert een cilindertelling afgekapt tot 1024. BIOS zonder deze extensie zou de tellingsmodule 1024 retourneren. Disk Manager ondersteunt deze aanroepen ook
INT 13U (0x13)
Functie FFH (0xFF of 255) --> Officieel privéfunctie (IBM SurePath BIOS)
INT 13U (0x13)
Functie FFFFH (0xFFFF) --> Turbomodus instellen (UNIEKE UX Turbo Utility)
Aanroepen met: AX = FFFFH
BH = AAH
BL = Subfunctienummer (zie de tabel)
(in reacties)
Terug: Indien geïnstalleerd,
BIJL = 1234H
Reacties:
Deze functie wordt gebruikt om de Turbo-modus in te stellen. De subfunctienummers om de functie met BL aan te roepen, zijn in de volgende tabel gegeven:
Waarde
|
Beschrijving
|
00U
|
Installatiecontrole
|
01U
|
Turbomodus inschakelen
|
02U
|
Turbomodus uitschakelen
|
03U
|
Stel de Turbo-modus in volgens de hardwareschakelaar
|
04U
|
Stel schijftoegang in op Turbo-modus
|
05U
|
Stel schijftoegang in op de normale modus
|
Hoe INT 13H-extensies te gebruiken in C-programmering
We kunnen de Extension Functions van INT 13H aanroepen met dezelfde C-functies (int86(), int86x() etc.) die we in de eerdere hoofdstukken gebruikten. Laten we het leren aan de hand van een voorbeeld.
Het volgende voorbeeld legt de focus op de drie functies (Check Extensions present, extended read en extended write). We gaan de extended write-functie echter niet gebruiken in dit hoofdstuk.
Het programma controleert eerst of extensies worden ondersteund of niet, als de extensies aanwezig zijn voor INT 13H, leest het de absolute sector 0 (dus MBR) van de schijf. De codering van het programma verloopt op de volgende manier:
/* Programma om toegang te krijgen tot sectoren groter dan 8,46 GB met behulp van INT 13 BIOS-extensies */
#include<stdio.h>
#include<dos.h>
/* Wijst de identificatie toe aan het gegevenstype */
typedef ongetekende char Byte;
typedef unsigned int Woord;
typedef unsigned lange DWord;
/* disk_packet-structuur wordt geladen in DS:SI en opdracht wordt uitgevoerd */
struct schijfpakket
{
Byte size_pack; // Grootte van pakket moet 16 of 16+ zijn
Byte gereserveerd1; // Gereserveerd
Byte no_of_blocks;// Aantal blokken voor overdracht
Byte gereserveerd2; // Gereserveerd
/* Adres in Segment:Offset formaat */
Woordoffset; //offsetadres
Woordsegment; //segmentadres
/* Ter ondersteuning van de schijf met een capaciteit van 1152921504.607 GB */
DWoord lba1;
DWord lba2;
}
schijf_pakket;
/* Functie om te controleren of de extensies worden ondersteund */
ongeldige check_ext_present()
{
union REGS inregs, outregs; /* Invoerregisters en
Uitvoer */
inregs.h.ah=0x41; /* Functie om te controleren
Extensie aanwezig */
inregs.x.bx=0x55AA;
inregs.h.dl=0x80; /* Stationnr. voor eerste harde schijf */
int86(0x13,&inregs,&outregs); /*Interrupt aanroepen */
als(outregs.x.cflag)
{
/* Extensie niet ondersteund */
printf("\nBios-extensie niet ondersteund");
uitgang(1);
}
als(outregs.x.bx==0xAA55)
als(outregs.x.cx & 0x1)
/* Extensie aanwezig */
printf("\nUitgebreide I/O ondersteund");
}
/* Functie om de sector te lezen */
leeg lees_sectoren(void *buffer)
{
union REGS inregs, outregs; /* Invoer en uitvoer
Registers */
struct SREGS segregs; // Segmentregisters
disk_pack.size_pack=16; // Stel de grootte in op 16
disk_pack.no_of_blocks=1; // Eén blok
disk_pack.reserved1=0; // Gereserveerd woord
disk_pack.reserved2=0; // Gereserveerd woord
disk_pack.segment=FP_SEG(buffer);// Segment van buffer
disk_pack.offset=FP_OFF(buffer); // Offset van buffer
/* verzoek om MBR van harde schijf 1 */
/* Lees Absolute sector 0 */
disk_pack.lba1=0; /* LBA-adres, bevat eerste
32 bits */
/* Normaal gesproken vereisen we (schijven < 2,1 TB) om in te stellen
alleen dit */
disk_pack.lba2=0; // Laatste 32 bits adres
inregs.h.ah=0x42; // Functie om te lezen
inregs.h.dl=0x80; // Schijfnummer voor eerste harde schijf inregs.x.si = FP_OFF(&disk_pack); /*Maak DS:SI-punt
naar disk_pack */
segregs.ds = FP_SEG(&schijf_pakket);
/* Interrupt aanroepen */
int86x(0x13,&inregs,&outregs,&segregs);
als(outregs.x.cflag)
printf("\n\nFout %d\n",outregs.h.ah);
anders
printf("\n\nIk hoop dat alles goed is");
}
//// Schrijf sectorfunctie \\\\
leeg schrijf_sector()
{
/* Het wordt op dezelfde manier geschreven als de read_sectors-functie, behalve Functienummer, dat in deze functie 0x43 zal zijn. We zullen de uitgebreide schrijffunctie in de volgende hoofdstukken bespreken.
Controleer en verifieer voordat u deze functie gebruikt wat u gaat doen. U moet de juiste kennis hebben van wat u gaat doen. Gebruik van deze functie bij gebrek aan kennis of onzorgvuldigheid kan uw gegevens vernietigen. */
}
/// Hoofdfunctie \\\\
leeg hoofd()
{
int i=0;
/* buffer om MBR in te bewaren */
Byte mbr[512];
clrscr();
/* controleren of BIOS-extensie aanwezig is */
controleer_ext_aanwezig();
/* sector lezen */
lees_sectoren(&mbr);
printf("\n\n Gegevens van MBR \n");
printf("▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n\n\n");
terwijl(i++<512)
{
/* de MBR-buffer weergeven */
printf("%c",mbr[i]);
}
}
Gegevens van MBR
Opmerkingen over de codering van het programma
typedef Wijst de identifier toe aan het gegevenstype, zodat typedef unsigned char Byte; identifier Byte toewijst voor het gegevenstype char. Op dezelfde manier wordt identifier Word toegewezen aan int en DWord aan long.
De disk_packet-structuur wordt geladen in DS:SI en de opdracht (zoals extended read, extended write of verify etc.) wordt uitgevoerd. Zie de functies van IBM/MS INT 13H Extensions (Functie 41H tot Functie 49H) die eerder zijn gegeven.
De functie check_ext_present() controleert of de extensies beschikbaar/ondersteund zijn of niet. De functie wordt aangeroepen met BX=55AAH (inregs.x.bx=0x55AA;) en als extensies worden ondersteund, wordt het BX-register ingesteld op AA55H. (Zie Functie 41H eerder gegeven)
De functie read_sectors wordt gebruikt om de absolute sector van de schijf te lezen, gespecificeerd door disk_pack.lba1. In dit programma hebben we disk_pack.lba1=0 gegeven, dus we gaan de absolute sector 0 lezen (zie de opmerking hieronder) en dus de MBR van de schijf lezen.
De write_sector functie is ook hetzelfde als de read_sectors functie en zal op dezelfde manier geschreven worden maar met de verschillende Function opties. We zullen het gebruiken in de volgende hoofdstukken.
Opmerking:
We lezen de schijfsectoren op de volgende twee manieren:
- Relatieve sector lezen (of schrijven)
- Absolute sector lezen (of schrijven)
Bij Relative Sector Read lezen we de schijfsectoren in overeenstemming met de CHS (Cylinder, Head en Sector) geometrie van de schijf. Bij relative sector read staat de MBR van de schijf (Eerste Sector van de schijf) op Cilinder 0, head 0 en Sector 1.
Bij het Absolute lezen van de schijfsectoren hoeven we de Cilinder- of Kopnummers niet in ons programma te specificeren. De absolute sectoren worden geteld vanaf absolute sector 0.
Dus als we de MBR van de schijf (eerste sector van de schijf) gaan lezen, gaan we absolute sector 0 lezen. Het is de taak van BIOS om het absolute sectornummer om te zetten naar de bijbehorende cilinder-, kop- en sectornummers.
Net als bij het lezen (of schrijven) van absolute sectoren hoeven we bij bewerkingen zoals het lezen of schrijven van de hele schijf alleen de absolute sectoren binnen de lus te berekenen. Bij het lezen (of schrijven) van relatieve sectoren moeten we echter drie lussen tegelijk uitvoeren om CHS te berekenen. Daarom is het lezen/schrijven van absolute sectoren veel sneller dan het lezen/schrijven van relatieve sectoren.
Als we bijvoorbeeld een harde schijf hebben met 16 koppen (zijden), 12 cilinders en 63 sectoren, dan toont de onderstaande tabel de procedure en de verschillen tussen beide leesmethoden. Zo wordt duidelijk hoe de absolute sectorbenadering ervoor kan zorgen dat onze tijdrovende programma's (zoals het lezen/schrijven van de hele schijf of het wissen van de hele schijf, etc.) veel sneller worden uitgevoerd:
Relatieve sectoren lezen
|
Absolute sectorlezing
|
Cilinder = 0, Kop = 0, Sector = 1
|
Absolute sector = 0
|
Cilinder = 0, Kop = 0, Sector = 2
|
Absolute sector = 1
|
Cilinder = 0, Kop = 0, Sector = 3
|
Absolute sector = 2
|
.
.
.
.
|
.
.
.
.
|
Cilinder = 0, Kop = 0, Sector = 62
|
Absolute sector = 61
|
Cilinder = 0, Kop = 0, Sector = 63
|
Absolute sector = 62
|
Cilinder = 0, Kop = 1, Sector = 1
|
Absolute sector = 63
|
Cilinder = 0, Kop = 1, Sector = 2
|
Absolute sector = 64
|
Cilinder = 0, Kop = 1, Sector = 3
|
Absolute sector = 65
|
Cilinder = 0, Kop = 1, Sector = 4
|
Absolute sector = 66
|
.
.
.
.
|
.
.
.
.
|
Cilinder = 0, Kop = 1, Sector = 63
|
Absolute sector = 125
|
Cilinder = 0, Kop = 2, Sector = 1
|
Absolute sector = 126
|
Cilinder = 0, Kop = 2, Sector = 2
|
Absolute sector = 127
|
Cilinder = 0, Kop = 2, Sector = 3
|
Absolute sector = 128
|
.
.
.
.
|
.
.
.
.
|
Cilinder = 0, Kop = 15, Sector = 63
|
Absolute sector = 1007
|
Cilinder = 1, Kop = 0, Sector = 1
|
Absolute sector = 1008
|
Cilinder = 1, Kop = 0, Sector = 2
|
Absolute sector = 1009
|
Cilinder = 1, Kop = 0, Sector = 3
|
Absolute sector = 1010
|
.
.
.
.
|
.
.
.
.
|
Cilinder = 1, Kop = 0, Sector = 63
|
Absolute sector = 1070
|
Cilinder = 1, Kop = 1, Sector = 1
|
Absolute sector = 1071
|
Cilinder = 1, Kop = 1, Sector = 2
|
Absolute sector = 1072
|
Cilinder = 1, Kop = 1, Sector = 3
|
Absolute sector = 1073
|
.
.
.
.
|
.
.
.
.
|
Cilinder = 1, Kop = 15, Sector = 63
|
Absolute sector = 2015
|
Cilinder = 2, Kop = 0, Sector = 1
|
Absolute sector = 2016
|
Cilinder = 2, Kop = 0, Sector = 2
|
Absolute sector = 2017
|
Cilinder = 2, Kop = 0, Sector = 3
|
Absolute sector = 2018
|
.
.
.
.
|
.
.
.
.
|
Cilinder = 11, Kop = 15, Sector = 60
|
Absolute sector = 12092
|
Cilinder = 11, Kop = 15, Sector = 61
|
Absolute sector = 12093
|
Cilinder = 11, Kop = 15, Sector = 62
|
Absolute sector = 12094
|
Cilinder = 11, Kop = 15, Sector = 63
|
Absolute sector = 12095
|
Hieronder vindt u informatie over de MBR-partitietabel die door elk MBR-analysehulpmiddel op de schijf wordt weergegeven:
Wordt weergegeven door elk MBR-analysehulpmiddel op de schijf
In de bovenstaande informatie zijn de relatieve sectornummers voor het begin van beide partities respectievelijk 63 en 11277630. Ze zijn vrij van partities en worden geteld op basis van het aantal beschikbare sectoren op de schijf.