INT 13h es la abreviatura de la llamada de interrupción de BIOS 13 hexadecimal , el vigésimo vector de interrupción en un sistema informático basado en x86 (descendiente de IBM PC). El BIOS normalmente configura un controlador de interrupciones en modo real en este vector que proporciona servicios de lectura y escritura de disco duro y disquete basados en sectores utilizando direccionamiento de sector de cabeza de cilindro (CHS). Los BIOS de PC modernos también incluyen funciones de extensión INT 13h, originadas por IBM y Microsoft en 1992, que brindan esos mismos servicios de acceso al disco utilizando direccionamiento LBA de 64 bits ; con adiciones menores, estos fueron cuasi-estandarizados por Phoenix Technologies y otros como el EDD (Unidad de disco mejorada ) Extensiones de BIOS.
Las computadoras modernas vienen con BIOS INT 13h y funcionalidad UEFI que brindan los mismos servicios y más, con la excepción de UEFI Class 3 que elimina completamente CSM, por lo que carece de INT 13h y otras interrupciones. Normalmente, los controladores UEFI utilizan direcciones LBA en lugar de direcciones CHS.
Descripción general
En sistemas operativos de modo real , como DOS , llamar a INT 13h saltaría al código ROM-BIOS de la computadora para servicios de disco de bajo nivel , que llevarían a cabo operaciones de lectura o escritura de disco basadas en sectores físicos para el programa. En DOS, sirve como interfaz de bajo nivel para los controladores de dispositivos de bloque integrados para discos duros y disquetes . Esto permite que INT 25h e INT 26h proporcionen funciones absolutas de lectura / escritura de disco para sectores lógicos al controlador del sistema de archivos FAT en el kernel de DOS, que maneja solicitudes relacionadas con archivos a través de funciones de API de DOS ( INT 21h ).
En sistemas operativos en modo protegido , como los derivados de Microsoft Windows NT (por ejemplo, NT4, 2000, XP y Server 2003) y Linux con dosemu , el sistema operativo intercepta la llamada y la pasa al mecanismo de E / S de disco nativo del sistema operativo. Windows 9x y Windows para trabajo en grupo 3.11 también omiten las rutinas del BIOS cuando se usa el acceso al disco de 32 bits . Además de realizar acceso a disco de bajo nivel, las llamadas INT 13h y las estructuras de datos de BIOS relacionadas también proporcionan información sobre los tipos y capacidades de los discos (u otros dispositivos DASD ) conectados al sistema; cuando se inicia un sistema operativo en modo protegido, puede usar esa información del BIOS para enumerar el hardware del disco para que (el sistema operativo) pueda cargar y configurar los controladores de E / S del disco adecuados.
La interfaz INT 13h de modo real del BIOS original admite unidades de tamaños de hasta aproximadamente 8 GB utilizando lo que comúnmente se conoce como direccionamiento CHS físico . Este límite se origina en la interfaz de hardware del hardware del disco IBM PC / XT . El BIOS usó la dirección del sector de la cabeza del cilindro (CHS) dada en la llamada INT 13h y la transfirió directamente a la interfaz de hardware. Se impuso un límite menor, alrededor de 504 MB, por la combinación de los límites de direccionamiento CHS utilizados por el BIOS y los utilizados por los discos duros ATA, que son diferentes. Cuando se combinan los límites de direccionamiento de CHS tanto del BIOS como del ATA (es decir, cuando se aplican simultáneamente), el número de sectores de 512 bytes que se pueden direccionar representa un total de aproximadamente 504 MB.
El límite de 504 MB se superó mediante la traducción de CHS , una técnica mediante la cual el BIOS simulaba una geometría CHS ficticia en la interfaz INT 13h, mientras se comunicaba con la unidad ATA utilizando su geometría CHS lógica nativa. (Para cuando se acercó la barrera de los 504 MB, los discos ATA habían dejado de presentar sus parámetros de geometría física real en la interfaz ATA externa). exactamente a 8064 MB, la capacidad nativa de la interfaz BIOS CHS por sí sola. (La interfaz ATA tiene una capacidad de direccionamiento CHS nativa mucho mayor, por lo que una vez que la "interferencia" de los límites de CHS de BIOS y ATA se resolvió mediante direccionamiento, solo la limitación más pequeña del BIOS fue significativa). La traducción de CHS a veces se denomina direccionamiento lógico de CHS , pero en realidad es un nombre inapropiado, ya que en el momento del desarrollo de este BIOS, las direcciones de ATA CHS ya eran lógicas, no físicas. El límite de 8064 MB se origina a partir de una combinación de la convención de llamadas basada en el valor de registro utilizada en la interfaz INT 13h y el objetivo de mantener la compatibilidad con versiones anteriores, lo que dicta que el formato o tamaño de las direcciones CHS pasadas a INT 13h no se pueden cambiar para agregar más bits a uno de los campos, por ejemplo, el campo Número de cilindro. Este límite utiliza 1024 cilindros, 256 cabezas, 63 sectores y bloques de 512 bytes, lo que permite exactamente 7.875 GiB de direccionamiento (1024 * 256 * 63 * 512 bytes). Hubo brevemente una serie de BIOS que ofrecían versiones incompatibles de esta interfaz; por ejemplo, AWARD AT BIOS y AMI 386sx BIOS se han extendido para manejar hasta 4096 cilindros colocando los bits 10 y 11 del número de cilindro en los bits 6 y 7 de registrar DH.
Todas las versiones de MS-DOS (incluidos MS-DOS 7 y Windows 95 ) tienen un error que impide el arranque de unidades de disco con 256 cabezas (valor de registro 0xFF), por lo que muchas BIOS modernas proporcionan asignaciones de traducción CHS con un máximo de 255 (0xFE) cabezas , [1] [2] reduciendo así el espacio direccionable total a exactamente 8032,5 MiB (aproximadamente 7,844 GiB). [3]
Para admitir el direccionamiento de discos aún más grandes, IBM y Microsoft introdujeron una interfaz conocida como INT 13h Extensions , que luego volvió a publicar y fue ligeramente ampliada por Phoenix Technologies como parte de BIOS Enhanced Disk Drive Services (EDD). [4] [5] Define nuevas funciones dentro del servicio INT 13h, todas con números de función mayores a 40h, que utilizan direccionamiento de bloque lógico (LBA) de 64 bits , lo que permite direccionar hasta 8 ZiB . (Una unidad ATA también puede admitir LBA de 28 o 48 bits, lo que permite hasta 128 GiB o 128 PiB respectivamente, asumiendo un tamaño de sector / bloque de 512 bytes). Esta es una interfaz de "paquete", porque utiliza un puntero a un paquete de información en lugar de la convención de llamada basada en registros de la interfaz INT 13h original. Este paquete es una estructura de datos muy simple que contiene una versión de interfaz, tamaño de datos y LBA. Para la compatibilidad con versiones anteriores del software, las funciones extendidas se implementan junto con las funciones CHS originales, y las llamadas a funciones de ambos conjuntos se pueden mezclar, incluso para la misma unidad, con la salvedad de que las funciones CHS no pueden alcanzar más allá de los primeros 8064 MB de la disco.
Algunos controladores de caché vacían sus búferes cuando detectan que se pasa por alto DOS al emitir directamente INT 13h desde las aplicaciones. Una lectura ficticia a través de INT 13h se puede utilizar como uno de varios métodos para forzar el vaciado de caché para cachés desconocidos (por ejemplo, antes de reiniciar). [1] [2]
BIOS AMI de alrededor de 1990-1991 búfer no alineados de palabras basura. Algunos programas DOS y TSR interrumpen la habilitación y los registros, por lo que PC DOS y MS-DOS instalan sus propios filtros para evitar esto. [6]
Lista de servicios INT 13h
Mesa de conducción
DL = 00h
1er disquete ("unidad A:")
DL = 01h
2do disquete ("unidad B:")
DL = 02h
3er disquete ("unidad B:")
. . .
DL = 7Fh
128 disquete
DL = 80h
1er disco duro
DL = 81h
2do disco duro
DL = 82h
3er disco duro
. . .
DL = E0h
CD / DVD [ cita requerida ] o disco duro número 97
. . .
DL = FFh
128 ° disco duro
Tabla de funciones
AH = 00h
Restablecer el sistema de disco
AH = 01h
Obtener el estado de la última operación de conducción
AH = 02h
Leer sectores desde Drive
AH = 03h
Escribir sectores para impulsar
AH = 04h
Verificar sectores
AH = 05h
Formatear pista
AH = 06h
Formatear pista Establecer indicadores de sector defectuoso
AH = 07h
Formatear la unidad comenzando en la pista
AH = 08h
Leer parámetros de la unidad
AH = 09h
HD
Inicializar el controlador de disco
AH = 0Ah
HD
Leer sectores largos desde Drive
AH = 0Bh
HD
Escribir sectores largos para conducir
AH = 0 canales
HD
Mover la cabeza motriz al cilindro
AH = 0Dh
HD
Restablecer unidades de disco
AH = 0Eh
PS / 2
Prueba de lectura del controlador
AH = 0Fh
PS / 2
Prueba de escritura del controlador
AH = 10 h
HD
Pruebe si la unidad está lista
AH = 11h
HD
Vuelva a calibrar la unidad
AH = 12 h
PS / 2
Prueba de RAM del controlador
AH = 13h
PS / 2
Prueba de conducir
AH = 14h
HD
Diagnóstico del controlador
AH = 15 h
Leer tipo de unidad
AH = 16 h
FD
Detectar cambio de medios
AH = 17h
FD
Establecer tipo de medio para formato (utilizado por versiones de DOS <= 3.1)
AH = 18h
FD
Establecer tipo de medio para formato (utilizado por versiones de DOS> = 3.2)
AH = 19h
Park Heads
AH = 41 h
EXT
Pruebe si hay extensiones disponibles
AH = 42 h
EXT
Leer sectores desde Drive
AH = 43 h
EXT
Escribir sectores para impulsar
AH = 44 h
EXT
Verificar sectores
AH = 45 h
EXT
Bloquear / desbloquear unidad
AH = 46 h
EXT
Expulsar unidad
AH = 47 h
EXT
Mover la cabeza motriz al sector
AH = 48 h
EXT
Leer parámetros de la unidad
AH = 49 h
EXT
Detectar cambio de medios
AH = 4Bh
EXT
Obtener el tipo de emulación de unidad
Si la segunda columna está vacía, la función se puede utilizar tanto para disquete como para disco duro.
FD: solo para disquetes.
HD: solo para disco duro.
PS / 2: solo para disco duro en el sistema PS / 2.
EXT: parte del INT 13h Extensiones que se escribieron en la década de 1990 para admitir discos duros con más de 8 GB .
INT 13h AH = 00h : Restablecer sistema de disco
Parámetros
AH
00h
DL
Unidad (el bit 7 establecido significa restablecer tanto el disco duro como el disquete)
Resultados
CF
Establecer en caso de error
AH
Código de retorno
INT 13h AH = 01h : Obtener el estado de la última operación de accionamiento
Parámetros
AH
01h
DL
Manejar
Bit 7 = 0 para unidad de disquete, bit 7 = 1 para unidad fija
Resultados
AH
Código de retorno
00h
Éxito
01h
Comando inválido
02h
No se puede encontrar la marca de dirección
03h
Intento de escritura en disco protegido contra escritura
04h
Sector no encontrado
05h
Restablecimiento fallido
06h
Línea de cambio de disco 'activa'
07h
Error en la actividad de los parámetros de la unidad
08h
Invasión de DMA
09h
Intento de DMA por encima del límite de 64 kb
0Ah
Se detectó un sector defectuoso
0Bh
Cilindro defectuoso (pista) detectado
0Ch
Tipo de medio no encontrado
0Dh
Número de sectores no válido
0Eh
Marca de dirección de datos de control detectada
0Fh
DMA fuera de rango
10h
Error de datos CRC / ECC
11h
Error de datos corregido ECC
20h
Fallo del controlador
40h
Buscar el fracaso
80h
Se agotó el tiempo de espera de la unidad, se supone que no está lista
AAh
Conducir no esta listo
BBh
Error indefinido
CCh
Error de escritura
E0h
Error de estado
FFh
Error en la operación de detección
CF
Establecer en caso de error, borrar si no hay error
INT 13h AH = 02h : Leer sectores de la unidad
Parámetros
AH
02h
Alabama
Sectores para leer contar
CH
Cilindro
CL
Sector
DH
Cabeza
DL
Manejar
ES: BX
Puntero de dirección de búfer
Resultados
CF
Establecer en caso de error, borrar si no hay error
AH
Código de retorno
Alabama
Recuento de lectura de sectores reales
Observaciones
El registro CX contiene tanto el número de cilindro (10 bits , los valores posibles son de 0 a 1023) como el número de sector (6 bits, los valores posibles son de 1 a 63). Los bits de cilindro y sector se enumeran a continuación:
CX: = ((cilindro y 255) shl 8) o ((cilindro y 768) shr 2) o sector;cilindro: = ((CX y 0xFF00) shr 8) o ((CX y 0xC0) shl 2)sector: = CX y 63;
El direccionamiento del búfer debe garantizar que el búfer completo esté dentro del segmento dado , es decir ( BX + size_of_buffer ) <= 10000h. De lo contrario, la interrupción puede fallar con algunas versiones de BIOS o hardware.
Ejemplo
Suponga que desea leer 16 sectores (= 2000h bytes ) y su búfer comienza en la dirección de memoria 4FF00h. Utilizando la segmentación de memoria , hay diferentes formas de calcular los valores de registro, por ejemplo:
ES = segmento = 4F00hBX = desplazamiento = 0F00hsuma = dirección de memoria = 4FF00hsería una buena opción porque 0F00h + 2000h = 2F00h <= 10000hES = segmento = 4000hBX = desplazamiento = FF00hsuma = dirección de memoria = 4FF00hsería no ser una opción buena porque FF00h + 2000h = 11F00h> 10000h
La función 02h de interrupción 13h solo puede leer sectores de los primeros 16,450,560 sectores de su disco duro, para leer sectores más allá del límite de 8 GB debe usar la función 42h de Extensiones INT 13h . Otra alternativa puede ser la interrupción de DOS 25h que lee sectores dentro de una partición.
INT 13h AH = 03h : Escribir sectores para conducir
Parámetros
AH
03h
Alabama
Sectores para escribir el recuento
CH
Pista
CL
Sector
DH
Cabeza
DL
Manejar
ES: BX
Puntero de dirección de búfer
Resultados
CF
Establecer en caso de error, borrar si no hay error
AH
Código de retorno
Alabama
Recuento escrito de sectores reales
INT 13h AH = 04h : Verificar sectores desde la unidad
Parámetros
AH
04h
Alabama
Sectores para verificar el recuento
CH
Pista
CL
Sector
DH
Cabeza
DL
Manejar
ES: BX
Puntero de dirección de búfer
Resultados
CF
Establecer en caso de error, borrar si no hay error
AH
Código de retorno
Alabama
Recuento verificado de sectores reales
INT 13h AH = 05h : Formatear pista
Parámetros
AH
05h
Alabama
Sectores para dar formato al recuento
CH
Pista
CL
Sector
DH
Cabeza
DL
Manejar
ES: BX
Puntero de dirección de búfer
Campo de dirección de 4 bytes (se aplica a PC / XT 286, AT, PS / 1 y PS / 2)
Byte
Significado
Valores permitidos
1
Pista
2
Cabeza
3
Sector
4
Bytes / Sector
0 = 128, 1-256, 2-512, 3-1024
Resultados
CF
Establecer en caso de error, borrar si no hay error
AH
Código de retorno
INT 13h AH = 06h : Formatear pista Establecer indicadores de sector defectuoso
Parámetros
AH
06h
Alabama
Intercalar
CH
Pista
CL
Sector
DH
Cabeza
DL
Manejar
Resultados
CF
Establecer en caso de error, borrar si no hay error
AH
Código de retorno
INT 13h AH = 07h : Formatear unidad comenzando en la pista
Parámetros
AH
07h
Alabama
Intercalar
CH
Pista
CL
Sector
DH
Cabeza
DL
Manejar
Resultados
CF
Establecer en caso de error, borrar si no hay error
AH
Código de retorno
INT 13h AH = 08h : Leer parámetros de accionamiento
Parámetros
Registros
AH
08h = número de función para read_drive_parameters
DL
índice de unidad (por ejemplo, 1er disco duro = 80 h)
ES: DI [7]
configurado en 0000h: 0000h para solucionar algunos errores de BIOS
Resultados
CF
Establecer en caso de error, borrar si no hay error
AH
Código de retorno
DL
número de unidades de disco duro
DH [7]
último índice lógico de cabezas = número_de - 1 (porque el índice comienza con 0)
CX
[7: 6] [15: 8] [7] último índice lógico de cilindros = número_de - 1 (porque el índice comienza con 0 )
[5: 0] [7] último índice lógico de sectores por pista = número_de (porque el índice comienza con 1)
BL [7]
tipo de unidad (solo disquetes AT / PS2)
ES: DI [7]
puntero a la tabla de parámetros de la unidad (solo para disquetes)
Observaciones
Los valores lógicos de la función 08h pueden / deben diferir de los valores físicos de CHS de la función 48h.
El registro de resultados CX contiene tanto cilindros como valores de sector / pista, consulte la observación de la función 02h.
INT 13h AH = 09h : Características del par de variadores de inicio
Parámetros
AH
09h
DL
Manejar
Resultados
CF
Establecer en caso de error, borrar si no hay error
AH
Código de retorno
INT 13h AH = 0Ah: leer sectores largos de la unidad
La única diferencia entre esta función y la función 02h (ver arriba) es que la función 0Ah lee 516 bytes por sector en lugar de solo 512. Los últimos 4 bytes contienen el Código de corrección de errores (ECC), una suma de verificación de los datos del sector.
INT 13h AH = 41h : Comprobar extensiones presentes
Parámetros
Registros
Descripción
AH
41h = número de función para verificación de extensiones [8]
DL
índice de unidad (por ejemplo, 1er disco duro = 80 h)
BX
55AAh
Resultados
Registros
Descripción
CF
Establecer en No presente, Borrar si está presente
AH
Código de error o número de versión principal
BX
AA55h
CX
Máscara de bits de soporte de interfaz:
1 - Acceso al dispositivo usando la estructura de paquetes
2 - Bloqueo y expulsión de la unidad
4 - Soporte de unidad de disco mejorado (EDD)
INT 13h AH = 42h : Sectores de lectura extendidos desde la unidad
Parámetros
Registros
Descripción
AH
42h = número de función para lectura extendida
DL
índice de unidad (por ejemplo, 1er disco duro = 80 h)
DS: SI
segmento: puntero de desplazamiento al DAP, ver más abajo
DAP: paquete de direcciones de disco
rango de compensación
Talla
descripción
00h
1 byte
tamaño de DAP (establezca esto en 10 h)
01h
1 byte
no utilizado, debe ser cero
02h..03h
2 bytes
número de sectores a leer (algunos BIOS de Phoenix están limitados a un máximo de 127 sectores)
04h..07h
4 bytes
segmento: puntero de desplazamiento al búfer de memoria al que se transferirán los sectores (tenga en cuenta que x86 es little-endian : si declara el segmento y el desplazamiento por separado, el desplazamiento debe declararse antes del segmento)
08h..0Fh
8 bytes
número absoluto del inicio de los sectores que se leerán (el primer sector del variador tiene el número 0) usando direccionamiento de bloque lógico (tenga en cuenta que la mitad inferior viene antes que la mitad superior) [9]
Resultados
Registros
Descripción
CF
Establecer en caso de error, borrar si no hay error
AH
Código de retorno
Como ya se indicó con int 13h AH = 02h, se debe tener cuidado para asegurarse de que el búfer completo esté dentro del segmento dado , es decir (BX + size_of_buffer) <= 10000h
INT 13h AH = 43h : Sectores de escritura extendidos para conducir
Parámetros
Registros
Descripción
AH
43h = número de función para escritura extendida
Alabama
bit 0 = 0: cerrar comprobación de escritura,
bit 0 = 1: verificación de escritura abierta,
bit 1-7: reservado, puesto a 0
DL
índice de unidad (por ejemplo, 1er disco duro = 80 h)
DS: SI
segmento: puntero de desplazamiento al DAP
Resultados
Registros
Descripción
CF
Establecer en caso de error, borrar si no hay error
AH
Código de retorno
INT 13h AH = 48h : Parámetros de accionamiento de lectura extendidos
Parámetros
Registros
Descripción
AH
48h = número de función para Extended_read_drive_parameters
DL
índice de unidad (por ejemplo, 1er disco duro = 80 h)
DS: SI
segmento: puntero de desplazamiento al búfer de resultados, ver más abajo
Búfer de resultados
rango de compensación
Talla
descripción
00h..01h
2 bytes
tamaño del búfer de resultados (establezca esto en 1Eh)
02h..03h
2 bytes
banderas de información
04h..07h
4 bytes
número físico de cilindros = último índice + 1 (porque el índice comienza con 0)
08h..0Bh
4 bytes
número físico de cabezas = último índice + 1 (porque el índice comienza con 0)
0Ch..0Fh
4 bytes
número físico de sectores por pista = último índice (porque el índice comienza con 1)
10h..17h
8 bytes
número absoluto de sectores = último índice + 1 (porque el índice comienza con 0)
18h .. 19h
2 bytes
bytes por sector
1Ah..1Dh
4 bytes
puntero opcional a los parámetros de configuración de la unidad de disco mejorada (EDD) que se pueden utilizar para las siguientes llamadas de extensión de 13 horas de interrupción (si se admiten)
Resultados
Registros
Descripción
CF
Establecer en caso de error, borrar si no hay error
AH
Código de retorno
Observación
Los valores físicos de CHS de la función 48h pueden / deben diferir de los valores lógicos de la función 08h.
INT 13h AH = 4Bh: Obtener tipo de emulación de unidad
Parámetros
Regsiters
Descripción
AH
4Bh = obtener el tipo de emulación de unidad
Alabama
01
DL
índice de unidad (por ejemplo, 1er disco duro = 80 h)
DS: SI
apunta a una estructura vacía para el resultado. debe tener un tamaño de 13 h
Resultados
Registros
Descripción
CF
Establecer en error, borrar si no hay error
HACHA
Código de retorno
DS: SI
Apunta a una estructura de especificación
Estructura de especificación
Compensar
Tamaño (byte)
Descripción
00h
1
Tamaño de los paquetes en bytes (13h)
01h
1
Tipo de medio de arranque:
Bits
0-3
0000b: sin emulación
0001b: disquete de 1,2 M
0010b: disquete de 1,44 M
0011b: Disquete de 2,88 M
0100b: disco duro
4-5
Reservado
6
La imagen contiene el controlador ATAPI
7
La imagen contiene el controlador SCSI
02h
1
Número de unidad (índice de unidad)
03h
1
Número de controlador de CD-ROM
04h
4
Dirección de bloque lógico (LBA) de la imagen de disco para emular
08h
2
Especificación del dispositivo:
bit 0: el convertidor es esclavo en lugar de maestro
bits 7-0: LUN y PUN
0Ah
2
Segmento de búfer de 3K para almacenar en caché las lecturas de CD-ROM
0Ch
2
Segmento de imagen de arranque inicial a partir del segmento 7c0h
0Eh
2
Número de sectores (512 bytes de longitud) para cargar
10h
1
Byte bajo de conteo de cilindros (desde int 8h)
11h
1
Recuento de sectores (desde int 8h)
12h
1
Head Count (Desde int 8h)
Ver también
INT 10H
Llamada de interrupción del BIOS
Sector de culata
INT (instrucción x86)
DPMI (interfaz de modo protegido de DOS)
Lista de interrupciones de Ralf Brown
Especificación de la unidad de disco mejorada del BIOS
Referencias
↑ a b Brown, Ralf D. (16 de julio de 2000). "Lista de interrupciones de Ralf Browns (v61 html)" . Consultado el 3 de noviembre de 2016 .
^ a bBrown, Ralf D. (16 de julio de 2000). "Archivo de la Lista de interrupciones x86 (texto original v61):" inter61a.zip ", subarchivo:" INTERRUP.B ", encabezado:" B-1302 "(INT13, 02 Lectura), Notas" . Consultado el 3 de noviembre de 2016 .
^ Limitaciones de tamaño del disco, el límite de 8.4 GB (y otros)
^Stevens, Curtis (26 de enero de 1995). "Especificación mejorada de la unidad de disco 1.1 -BORRADOR- Phoenix Technologies, consulte Extensiones de BIOS 3.0 (se requiere registro)" (PDF) . Consultado el 3 de noviembre de 2016 .
^Landis, Hale (11 de febrero de 1995). "Tipos de BIOS, traducción de CHS, LBA y otras cosas buenas, consulte la especificación de la unidad de disco mejorada Phoenix tipo 6 de BIOS (se requiere registro)" (PDF) . Consultado el 3 de noviembre de 2016 .
^ ctyme.com - Lista de interrupciones de Ralf Browns, html indexado, DISCO - LEER SECTOR (S) EN LA MEMORIA
^ a b c d e f ctyme.com - DISCO - OBTENER PARÁMETROS DE LA UNIDAD (PC, XT286, CONV, PS, ESDI, SCSI)
^ ctyme.com - Extensiones IBM / MS INT 13 - COMPROBACIÓN DE INSTALACIÓN