fbpx
Wikipedia

Int 13h

INT 13h es la forma abreviada para la llamada de interrupción del BIOS 13hex, el cual es el vector de interrupción 20º en un sistema de arquitecturas de computadoras basada en x86. Esta interrupción se encarga de las operaciones típicas de acceso a las unidades de almacenamiento tales como discos duros y disquetes.

Características

Los sistemas operativos de modo real como MS-DOS llaman a esta interrupción para operaciones de disco y de disquete. Las aplicaciones de MS-DOS llaman a la interrupción int 21h para acceso al disco en vez de la interrupción INT 13h.

Los nuevos sistemas operativos como Microsoft Windows NT y sus derivados (ej. NT 4.0, XP y server 2003) o linux interceptan la llamada a esta interrupción y se la pasan a sus mecanismos nativos de acceso al disco o disquete. Windows 9x y Windows 3.x también hacen esto cuando utilizan el modo de acceso a archivos de 32 bits.

La rutina original de la interrupción soporta discos de 504 MB o más grandes hasta un límite de 8 GiB porque utiliza el modo de acceso CHS, para romper esta barrera, se crearon las extensiones de la INT 13h que utilizan el modo LBA (direcciones de 64-bits) para acceder al disco, soportando así hasta 8 ZiB de espacio (También se puede usar modos LBA de 32-bits o 48-bits que soportan 2 TiB o 128 PiB respectivamente).

Lista de servicios de la INT 13h

Tabla de unidades

DL = 00h Primera disquetera (Unidad "A:")
DL = 01h Segunda disquetera (Unidad "B:")
DL = 80h Primer disco duro
DL = 81h Segundo disco duro
DL = FFh Último disco duro soportado por la BIOS

Tabla de estado

AH = 00h La operación finalizó sin problemas
AH = 01h Función invalida en AH o parámetro no válido
AH = 02h Marca de dirección no encontrada
AH = 03h El disco está protegido contra la escritura
AH = 04h Sector no encontrado o error de lectura
AH = 05h Los datos no se verificaron correctamente
AH = 06h Disco cambiado (Disquetera)
AH = 07h Actividad de parámetros de disco fallada (disco duro)
AH = 08h Desborde de DMA
AH = 09h Error de límite de datos (Se intentó DMA sobrepasando los 64 KB)
AH = 0Ah Detectado sector dañado
AH = 0Bh Detectado cilindro dañado
AH = 0Ch Cilindro insoportado o medio inválido
AH = 0Dh Número inválido de sectores en formateo (disco duro PS/2)
AH = 0Eh Control de marca de datos detectado
AH = 0Fh Nivel de arbitración de DMA fuera de rango
AH = 10h Error incorregible de CRC o ECC
AH = 11h Datos ECC coregidos
AH = 20h Error de controlador
AH = 31h No hay medio en unidad
AH = 32h Tipo de unidad incorrecta guardada en CMOS (Compaq)
AH = 40h Fallo seek
AH = 80h Fuera de tiempo (no está listo)
AH = AAh Unidad no preparada
AH = B0h Volumen no bloqueado en unidad (INT 13h EXT)
AH = B1h Volumen bloqueado en unidad (INT 13h EXT)
AH = B2h Volumen no eliminable (INT 13h EXT)
AH = B3h Volumen en uso (INT 13h EXT)
AH = B4h Cuenta de bloqueo excedida (INT 13h EXT)
AH = B5h Petición de expulsión valida fallida (INT 13h EXT)
AH = B6h Volumen presente pero protegido contra escritura (INT 13h EXT)
AH = BBh Error indefinido
AH = CCh Escritura fallida
AH = E0h Error de estado de registro
AH = FFh Operación sense fallida

Servicios

AH = 00h TODOS Reiniciar controlador de disco
AH = 01h TODOS Comprobar estado de la unidad
AH = 02h TODOS Leer sectores
AH = 03h TODOS Escribir sectores
AH = 04h TODOS Verificar sectores
AH = 05h TODOS Formatear cilindro (formateo a bajo nivel)
AH = 08h TODOS Leer parámetros de unidad
AH = 09h HD Iniciar controlador de disco
AH = 0Ah HD Leer sectores largos
AH = 0Bh HD Escribir sectores largos
AH = 0Ch HD Mover cabeza a cilindro
AH = 0Dh HD Reiniciar unidades
AH = 0Eh PS/2 Test de lectura del controlador
AH = 0Fh PS/2 Test de escritura del controlador
AH = 10h HD Probar si la unidad está lista
AH = 11h HD Recalibrar unidad
AH = 12h PS/2 Test de la RAM del controlador
AH = 13h PS/2 Test de la unidad
AH = 14h HD Diagnóstico del controlador
AH = 15h TODOS Leer tipo de unidad
AH = 16h FD Detectar cambio de medios
AH = 17h FD Selecionar tipo de medio a formatear (Usado por la versión de DOS <= 3.1)
AH = 18h FD Selecionar tipo de medio a formatear (Usado por la versión de DOS >= 3.2)
AH = 41h, BX = 55AAh EXT Comprobar si la extensiones están instaladas
AH = 42h EXT Leer sectores
AH = 43h EXT Escribir sectores
AH = 44h EXT Verificar sectores
AH = 45h EXT Bloquear/Desbloquear unidad
AH = 46h EXT Expulsar unidad
AH = 47h EXT Mover cabeza a sector
AH = 48h EXT Leer parámetros de la unidad
AH = 49h EXT Detectar cambio de tipo de unidad
AH = 4Ah CD-ROM arrancable Iniciar emulación de disco
AX = 4B00h CD-ROM arrancable Terminar emulación de disco
AX = 4B01h CD-ROM arrancable Ver estado
AH = 4Eh CD-ROM arrancable Iniciar emulación de disco y bootear
AX = 4D00h CD-ROM arrancable Retornar catálogo de booteo
TODOS: Puede ser utilizado para disco duro y disquete
HD: Solo puede ser utilizado por el disco duro
FD: Solo puede ser utilizado por el disquete
PS/2: Solo para discos duros de equipos PS/2
EXT: Extensiones de la INT 13h

INT 13h AH=00h - Reiniciar controlador de disco

Parámetros:[1]

AH 00h
DL Unidad (ej: 80h - Primer disco duro)

Ejemplo:

MOV AH,00h MOV DL,00h ;Primera disquetera INT 13h 

INT 13h AH=02h - Leer sectores

Parámetros:[1]

AH = 02h Leer sectores
AL = ?? Número de sectores a leer (tiene que ser mayor que 0)
CH = ?? 8 bit bajos del número de cilindro
CL = ?? Número de sector (bits 0-5), 2 bits altos de número de cilindro (bits 6-7, solo disco duro)
DH = ?? Número de cabeza
DL = ?? Número de unidad
ES:BX Buffer de datos

Retorna:

CF Activada en error, limpia si no hay error
AH = ?? Estado
AL = ?? Número de sectores transferidos

Ejemplo:

MOV AH,02h MOV AL,10 ;10 sectores a leer MOV CH,02 ;Cilindro 2 MOV CL,01 ;Empezamos desde el primer sector MOV DH,01 ;Cabeza 1 MOV DL,00h ;Primera disquetera MOV BX,0800h ;ES:BX - 0000:0800 INT 13h JMP 0000h:0800h ;Saltamos a la direccion que acaba de leer 

INT 13h AH=04h - Verificar sectores

Parámetros:[1]

AH = 04h Verificar sectores
AL = ?? Número de sectores a verificar (tiene que ser mayor de 0)
CH = ?? 8 bits bajos del número del cilindro
CL = ?? Número de sector (Bits 0-5), 2 bits altos del número del cilindro (Sólo disco duro)
DH = ?? Número de cabeza
DL = ?? Número de unidad
ES:BX Buffer de datos

Retorna:

CF Activada en error, limpia si no hay error
AH = ?? Estado
AL = ?? Número de sectores verificados

Ejemplo:

MOV AH,04h MOV AL,18 ;18 sectores ha comprobar MOV CH,3 ;Cilindro 3 MOV CL,1 ;Sector 1 MOV DH,00 ;Cabeza 0 MOV DL,00 ;Primera disquetera MOV BX,00 ;Ponemos el buffer en 0000:0800 MOV ES,BX MOV BX,0800h INT 13h JC sector_malo_o_error ;Si viene aquí los sectores están bien sector_malo_o_error: ;Si viene aquí hay un sector dañado o ha habido otro tipo de error 

INT 13h AH=41h - Comprobar si las extensiones están instaladas

Parámetros:

AH = 41h Comprobar extensiones
BX = 55AAh Comprobar extensiones
DL = ?? Número de unidad

Retorna:

CF Activada en error (no hay extensiones), limpia si no hay error
AH = ?? Número de la versión mayor de las extensiones (01h = 1.x, 20h = 2.0 / EDD-1.0, 21h = 2.1 / EDD-1.1, 30h = EDD-3.0)
AL = ?? Uso Interno
BX = 55AAh Devuelve 55AAh si están instaladas
CX = ?? Lista de bits de las extensiones instaladas (Bit 0-15)
DH = ?? Versión de las extensiones (v2.0+ ??? -- no presente en 1.x)

Ejemplo:

MOV AH,41h MOV BX,55AAh MOV DL,80h ;Primer disco duro INT 13h JC no_hay_extensiones ;Si viene aquí las extensiones están instaladas no_hay_extensiones: ;Si viene aquí las extensiones no están instaladas 

Véase también

Referencias

  1. Bose, Sanjay K. (1996). Hardware and Software of Personal Computers (en inglés). New Age International. p. 84. 

Enlaces externos

  • Lista completa y explicada de la interrupción 13h (en inglés)
  •   Datos: Q4272362

este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, noviembre, 2015, forma, abreviada, para, llamada, interrupción, bios, 13hex, cual, vector, interrupción, 20º, sistema, arquitecturas, computadoras, basada,. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 1 de noviembre de 2015 INT 13h es la forma abreviada para la llamada de interrupcion del BIOS 13hex el cual es el vector de interrupcion 20º en un sistema de arquitecturas de computadoras basada en x86 Esta interrupcion se encarga de las operaciones tipicas de acceso a las unidades de almacenamiento tales como discos duros y disquetes Indice 1 Caracteristicas 2 Lista de servicios de la INT 13h 2 1 Tabla de unidades 2 2 Tabla de estado 2 3 Servicios 3 INT 13h AH 00h Reiniciar controlador de disco 4 INT 13h AH 02h Leer sectores 5 INT 13h AH 04h Verificar sectores 6 INT 13h AH 41h Comprobar si las extensiones estan instaladas 7 Vease tambien 8 Referencias 9 Enlaces externosCaracteristicas EditarLos sistemas operativos de modo real como MS DOS llaman a esta interrupcion para operaciones de disco y de disquete Las aplicaciones de MS DOS llaman a la interrupcion int 21h para acceso al disco en vez de la interrupcion INT 13h Los nuevos sistemas operativos como Microsoft Windows NT y sus derivados ej NT 4 0 XP y server 2003 o linux interceptan la llamada a esta interrupcion y se la pasan a sus mecanismos nativos de acceso al disco o disquete Windows 9x y Windows 3 x tambien hacen esto cuando utilizan el modo de acceso a archivos de 32 bits La rutina original de la interrupcion soporta discos de 504 MB o mas grandes hasta un limite de 8 GiB porque utiliza el modo de acceso CHS para romper esta barrera se crearon las extensiones de la INT 13h que utilizan el modo LBA direcciones de 64 bits para acceder al disco soportando asi hasta 8 ZiB de espacio Tambien se puede usar modos LBA de 32 bits o 48 bits que soportan 2 TiB o 128 PiB respectivamente Lista de servicios de la INT 13h EditarTabla de unidades Editar DL 00h Primera disquetera Unidad A DL 01h Segunda disquetera Unidad B DL 80h Primer disco duroDL 81h Segundo disco duroDL FFh Ultimo disco duro soportado por la BIOSTabla de estado Editar AH 00h La operacion finalizo sin problemasAH 01h Funcion invalida en AH o parametro no validoAH 02h Marca de direccion no encontradaAH 03h El disco esta protegido contra la escrituraAH 04h Sector no encontrado o error de lecturaAH 05h Los datos no se verificaron correctamenteAH 06h Disco cambiado Disquetera AH 07h Actividad de parametros de disco fallada disco duro AH 08h Desborde de DMAAH 09h Error de limite de datos Se intento DMA sobrepasando los 64 KB AH 0Ah Detectado sector danadoAH 0Bh Detectado cilindro danadoAH 0Ch Cilindro insoportado o medio invalidoAH 0Dh Numero invalido de sectores en formateo disco duro PS 2 AH 0Eh Control de marca de datos detectadoAH 0Fh Nivel de arbitracion de DMA fuera de rangoAH 10h Error incorregible de CRC o ECCAH 11h Datos ECC coregidosAH 20h Error de controladorAH 31h No hay medio en unidadAH 32h Tipo de unidad incorrecta guardada en CMOS Compaq AH 40h Fallo seekAH 80h Fuera de tiempo no esta listo AH AAh Unidad no preparadaAH B0h Volumen no bloqueado en unidad INT 13h EXT AH B1h Volumen bloqueado en unidad INT 13h EXT AH B2h Volumen no eliminable INT 13h EXT AH B3h Volumen en uso INT 13h EXT AH B4h Cuenta de bloqueo excedida INT 13h EXT AH B5h Peticion de expulsion valida fallida INT 13h EXT AH B6h Volumen presente pero protegido contra escritura INT 13h EXT AH BBh Error indefinidoAH CCh Escritura fallidaAH E0h Error de estado de registroAH FFh Operacion sense fallidaServicios Editar AH 00h TODOS Reiniciar controlador de discoAH 01h TODOS Comprobar estado de la unidadAH 02h TODOS Leer sectoresAH 03h TODOS Escribir sectoresAH 04h TODOS Verificar sectoresAH 05h TODOS Formatear cilindro formateo a bajo nivel AH 08h TODOS Leer parametros de unidadAH 09h HD Iniciar controlador de discoAH 0Ah HD Leer sectores largosAH 0Bh HD Escribir sectores largosAH 0Ch HD Mover cabeza a cilindroAH 0Dh HD Reiniciar unidadesAH 0Eh PS 2 Test de lectura del controladorAH 0Fh PS 2 Test de escritura del controladorAH 10h HD Probar si la unidad esta listaAH 11h HD Recalibrar unidadAH 12h PS 2 Test de la RAM del controladorAH 13h PS 2 Test de la unidadAH 14h HD Diagnostico del controladorAH 15h TODOS Leer tipo de unidadAH 16h FD Detectar cambio de mediosAH 17h FD Selecionar tipo de medio a formatear Usado por la version de DOS lt 3 1 AH 18h FD Selecionar tipo de medio a formatear Usado por la version de DOS gt 3 2 AH 41h BX 55AAh EXT Comprobar si la extensiones estan instaladasAH 42h EXT Leer sectoresAH 43h EXT Escribir sectoresAH 44h EXT Verificar sectoresAH 45h EXT Bloquear Desbloquear unidadAH 46h EXT Expulsar unidadAH 47h EXT Mover cabeza a sectorAH 48h EXT Leer parametros de la unidadAH 49h EXT Detectar cambio de tipo de unidadAH 4Ah CD ROM arrancable Iniciar emulacion de discoAX 4B00h CD ROM arrancable Terminar emulacion de discoAX 4B01h CD ROM arrancable Ver estadoAH 4Eh CD ROM arrancable Iniciar emulacion de disco y bootearAX 4D00h CD ROM arrancable Retornar catalogo de booteoTODOS Puede ser utilizado para disco duro y disquete HD Solo puede ser utilizado por el disco duro FD Solo puede ser utilizado por el disquete PS 2 Solo para discos duros de equipos PS 2 EXT Extensiones de la INT 13hINT 13h AH 00h Reiniciar controlador de disco EditarParametros 1 AH 00hDL Unidad ej 80h Primer disco duro Ejemplo MOV AH 00 h MOV DL 00 h Primera disquetera INT 13 hINT 13h AH 02h Leer sectores EditarParametros 1 AH 02h Leer sectoresAL Numero de sectores a leer tiene que ser mayor que 0 CH 8 bit bajos del numero de cilindroCL Numero de sector bits 0 5 2 bits altos de numero de cilindro bits 6 7 solo disco duro DH Numero de cabezaDL Numero de unidadES BX Buffer de datosRetorna CF Activada en error limpia si no hay errorAH EstadoAL Numero de sectores transferidosEjemplo MOV AH 02 h MOV AL 10 10 sectores a leer MOV CH 02 Cilindro 2 MOV CL 01 Empezamos desde el primer sector MOV DH 01 Cabeza 1 MOV DL 00 h Primera disquetera MOV BX 0800 h ES BX 0000 0800 INT 13 h JMP 0000 h 0800 h Saltamos a la direccion que acaba de leerINT 13h AH 04h Verificar sectores EditarParametros 1 AH 04h Verificar sectoresAL Numero de sectores a verificar tiene que ser mayor de 0 CH 8 bits bajos del numero del cilindroCL Numero de sector Bits 0 5 2 bits altos del numero del cilindro Solo disco duro DH Numero de cabezaDL Numero de unidadES BX Buffer de datosRetorna CF Activada en error limpia si no hay errorAH EstadoAL Numero de sectores verificadosEjemplo MOV AH 04 h MOV AL 18 18 sectores ha comprobar MOV CH 3 Cilindro 3 MOV CL 1 Sector 1 MOV DH 00 Cabeza 0 MOV DL 00 Primera disquetera MOV BX 00 Ponemos el buffer en 0000 0800 MOV ES BX MOV BX 0800 h INT 13 h JC sector malo o error Si viene aqui los sectores estan bien sector malo o error Si viene aqui hay un sector danado o ha habido otro tipo de errorINT 13h AH 41h Comprobar si las extensiones estan instaladas EditarParametros AH 41h Comprobar extensionesBX 55AAh Comprobar extensionesDL Numero de unidadRetorna CF Activada en error no hay extensiones limpia si no hay errorAH Numero de la version mayor de las extensiones 01h 1 x 20h 2 0 EDD 1 0 21h 2 1 EDD 1 1 30h EDD 3 0 AL Uso InternoBX 55AAh Devuelve 55AAh si estan instaladasCX Lista de bits de las extensiones instaladas Bit 0 15 DH Version de las extensiones v2 0 no presente en 1 x Ejemplo MOV AH 41 h MOV BX 55 AAh MOV DL 80 h Primer disco duro INT 13 h JC no hay extensiones Si viene aqui las extensiones estan instaladas no hay extensiones Si viene aqui las extensiones no estan instaladasVease tambien EditarIBM PC ROM BIOS Controlador de disquete Unidad de disquete disqueteReferencias Editar a b c Bose Sanjay K 1996 Hardware and Software of Personal Computers en ingles New Age International p 84 Enlaces externos EditarLista completa y explicada de la interrupcion 13h en ingles Datos Q4272362Obtenido de https es wikipedia org w index php title Int 13h amp oldid 136722898, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos