INT 13h és l'abreviatura de la crida d'interrupció de la BIOS 13hex, el 20è vector d'interrupció en un sistema informàtic basat en x86 (descendent de PC IBM). La BIOS normalment configura un controlador d'interrupcions en mode real en aquest vector que proporciona serveis de lectura i escriptura de disc dur i disquet basats en sectors mitjançant l'adreçament del sector de la culata (CHS). Les BIOS de PC modernes també inclouen funcions d'extensió INT 13h, creades per IBM i Microsoft el 1992, que proporcionen aquests mateixos serveis d'accés al disc mitjançant adreçament LBA de 64 bits; amb petites addicions, aquestes van ser quasi estandarditzades per Phoenix Technologies i altres com les extensions de BIOS EDD (Enhanced Disk Drive).
INT és una instrucció x86 que desencadena una interrupció de programari, i 13hex és el número d'interrupció (com a valor hexadecimal) que es crida.
Els ordinadors moderns inclouen tant la funcionalitat BIOS INT 13h com la UEFI que ofereixen els mateixos serveis i més, a excepció de la UEFI Class 3 que elimina completament CSM, per la qual cosa no té INT 13h i altres interrupcions. Normalment, els controladors UEFI utilitzen l'adreça LBA en lloc de l'adreçament CHS.
Visió general En sistemes operatius en mode real, com ara DOS, cridar a INT 13h saltaria al codi ROM-BIOS de l'ordinador per a serveis de disc de baix nivell, que duria a terme operacions de lectura o escriptura de disc basades en el sector físic per al programa. A DOS, serveix com a interfície de baix nivell per als controladors de dispositiu de blocs integrats per a discs durs i disquets. Això permet que INT 25h i INT 26h proporcionin funcions absolutes de lectura/escriptura de disc per a sectors lògics al controlador del sistema de fitxers FAT al nucli DOS, que gestiona les sol·licituds relacionades amb fitxers mitjançant les funcions de l'API DOS (INT 21h).
Totes les versions de MS-DOS (incloent MS-DOS 7 i Windows 95) tenen un error que impedeix arrencar unitats de disc amb 256 capçals (valor de registre 0xFF), de manera que moltes BIOS modernes proporcionen mapes de traducció CHS amb com a màxim 255 capçals (0xFE)., reduint així l'espai adreçable total a exactament 8032,5 MiB (uns 7,844 GiB).
Per donar suport a l'adreçament de discs encara més grans, IBM i Microsoft van introduir una interfície coneguda com a INT 13h Extensions, que després van tornar a publicar i una mica ampliada per Phoenix Technologies com a part dels serveis d'unitat de disc millorat (EDD) de la BIOS. Defineix noves funcions dins del servei INT 13h, totes amb números de funció superiors a 40h, que utilitzen l'adreçament de blocs lògics (LBA) de 64 bits, que permet adreçar fins a 8 ZiB. (Una unitat ATA també pot suportar LBA de 28 o 48 bits que permet fins a 128 GiB o 128 PiB, respectivament, suposant una mida de bloc/sector de 512 bytes). Aquesta és una interfície de "paquet", perquè utilitza un punter a un paquet d'informació en lloc de la convenció de crida basada en registre de la interfície INT 13h original. Aquest paquet és una estructura de dades molt senzilla que conté una versió d'interfície, mida de dades i LBA. Per a la compatibilitat enrere del programari, les funcions ampliades s'implementen juntament amb les funcions CHS originals, i les crides a funcions dels dos conjunts es poden barrejar, fins i tot per a la mateixa unitat, amb l'advertència que les funcions CHS no poden superar els primers 8064 MB del programari. disc.
Exemple de serveis INT 13h Taula de funcions: Restableix el sistema de discObteniu l'estat de l'operació de l'última unitatLlegeix Sectors des de DriveEscriu sectors per conduirVerificar SectorsFormat de pistaPista de format Establir banderes de sector incorrecteFormateja la unitat començant a la pistaLlegeix els paràmetres de la unitatHDInicialitzar el controlador de discHDLlegeix Sectors llargs de DriveHDEscriu sectors llargs per conduirHDMou el capçal de la unitat al cilindreHDRestablir unitats de discPS/2Prova de lectura del controladorPS/2Prova d'escriptura del controladorHDProveu si la unitat està a puntHDRecalibra la unitatPS/2Prova de memòria RAM del controladorPS/2Prova de conduccióHDDiagnòstic del controladorLlegiu el tipus de unitatFDDetecta el canvi de mitjansFDEstableix el tipus de suport per al format (utilitzat per les versions de DOS < = 3.1)FDEstableix el tipus de suport per al format (utilitzat per les versions de DOS > = 3.2)Caps de parcEXTComproveu si hi ha extensions disponiblesEXTLlegeix Sectors des de DriveEXTEscriu sectors per conduirEXTVerificar SectorsEXTBloquejar/Desbloquejar la unitatEXTExpulsa la unitatEXTMou el capçal de la unitat al sectorEXTLlegeix els paràmetres de la unitatEXTDetecta el canvi de mitjansAH = 4BhEXTObteniu el tipus d'emulació de la unitat
Referències
Categoria:BIOS