Sunteți pe pagina 1din 23

Interrupcin 13h

Esta interrupcin se
encarga de las
operaciones tpicas de
acceso a los discos duros y
a los disquetes

Tabla
Tablade
deunidades
unidades
En DL
DL = 00h
DL = 01h
DL = 80h
DL = 81h
DL = FFh

Accin
Primera disquetera (Unidad "A:")
Segunda disquetera (Unidad "B:")
Primer disco duro
Segundo disco duro
ltimo disco duro soportado por la
BIOS

Servicios
En AH

Disco Duro y/o


Disquete

AH = 00h

TODOS

AH = 01h

TODOS

AH = 02h
AH = 03h
AH = 04h

TODOS
TODOS
TODOS

TODOS: Puede ser utilizado para disco duro


y disquete

Accin
Reiniciar controlador
de disco
Comprobar estado de
la unidad
Leer sectores
Escribir sectores
Verificar sectores

Servicios
En AH

Disco Duro y/o


Disquete

AH = 05h

TODOS

AH = 08h

TODOS

AH = 09h

HD

AH = 0Ah
AH = 0Bh

HD
HD

TODOS: Puede ser utilizado para disco duro


HD: ySolo
puede ser utilizado por el disco duro
disquete

Accin
Formatear
cilindro
(formateo a bajo nivel)
Leer parmetros de
unidad
Iniciar controlador de
disco
Leer sectores largos
Escribir sectores largos

Servicios
En AH

Disco Duro y/o


Disquete

AH = 0Ch

HD

AH = 0Dh

HD

AH = 0Eh

PS/2

AH = 0Fh

PS/2

AH = 10h

HD

HD: Solo puede ser utilizado por el disco duro


PS/2: Solo para discos duros de equipos PS/2

Accin
Mover
cabeza
a
cilindro
Reiniciar unidades
Test de lectura del
controlador
Test de escritura del
controlador
Probar si la unidad
est lista

Servicios
En AH
AH = 11h

Disco Duro y/o


Disquete
HD

AH = 12h

PS/2

AH = 13h

PS/2

AH = 14h

HD

AH = 15h

TODOS

TODOS: Puede ser utilizado para disco duro


HD: ySolo
puede ser utilizado por el disco duro
disquete
PS/2: Solo para discos duros de equipos PS/2

Accin
Recalibrar unidad
Test de la RAM del
controlador
Test de la unidad
Diagnostico del
controlador
Leer tipo de unidad

Servicios
En AH
AH = 16h

Disco Duro y/o


Disquete
FD

AH = 17h

FD

AH = 18h

FD

AH = 41h, BX =
55AAh
AH = 42h

EXT
EXT

FD: Solo puede ser utilizado por el disquete


EXT: Extensiones de la INT 13h

Accin
Detectar cambio de medios
Selecionar tipo de medio a
formatear ( Usado por la
versin de DOS <= 3.1 )
Selecionar tipo de medio a
formatear ( Usado por la
versin de DOS >= 3.2 )
Comprobar si la extensiones
estn instaladas
Leer sectores

Servicios
En AH
AH = 43h
AH = 44h

Disco Duro y/o


Disquete
EXT
EXT

AH = 45h

EXT

AH = 46h
AH = 47h

EXT
EXT

AH = 48h

EXT

EXT: Extensiones de la INT 13h

Accin
Escribir sectores
Verificar sectores
Bloquear/Desbloquear
unidad
Expulsar unidad
Mover cabeza a sector
Leer parmetros de la
unidad

Servicios
En AH

Disco Duro y/o


Disquete

AH = 49h

EXT

AH = 4Ah

CD-ROM arrancable

AX = 4B00h

CD-ROM arrancable

AX = 4B01h

CD-ROM arrancable

AH = 4Eh

CD-ROM arrancable

AX = 4D00h

CD-ROM arrancable

EXT: Extensiones de la INT 13h

Accin
Detectar cambio de tipo de
unidad
Iniciar emulacin de disco
Terminar emulacin de
disco
Ver estado
Iniciar emulacin de disco y
bootear
Retornar catalogo de booteo

Retorno
AH
AH = 00h
AH = 01h
AH = 02h
AH = 03h
AH = 04h

Significado
La operacin finaliz sin problemas
Funcin invalida en AH o
parmetro no vlido
Marca de direccin no encontrada
El disco esta protegido contra la
escritura
Sector no encontrado o error de
lectura

Retorno
AH
AH = 05h
AH = 06h
AH = 07h
AH = 08h
AH = 09h

DMA: Acceso directo a memoria

Significado
Los datos no se verificaron
correctamente
Disco cambiado (Disquetera)
Actividad de parmetros de disco
fallada (disco duro)
Desborde de DMA
Error de lmite de datos (Se intent
DMA sobrepasando los 64 KB)

Retorno
AH
AH = 0Ah
AH = 0Bh
AH = 0Ch
AH = 0Dh
AH = 0Eh

Significado
Detectado sector daado
Detectado cilindro daado
Cilindro insoportado o medio
invalido
Nmero invalido de sectores en
formateo (disco duro PS/2)
Control de marca de datos
detectado

Retorno
AH
AH = 0Fh
AH
AH
AH
AH

=
=
=
=

10h
11h
20h
31h

Significado
Nivel de arbitracin de DMA fuera
de rango
Error incorregible de CRC o ECC
Datos ECC coregidos
Error de controlador
No hay medio en unidad

Retorno
AH

Significado

AH = 32h

Tipo de unidad incorrecta


guardada en CMOS (Compaq)

AH = 40h

Fallo seek

AH = 80h

Fuera de tiempo (no esta listo)

AH = AAh

Unidad no preparada

AH = B0h

Volumen no bloqueado en unidad


(INT 13h EXT)

Retorno
AH
AH = B1h
AH = B2h
AH = B3h
AH = B4h
AH = B5h

Significado
Volumen bloqueado en unidad (INT
13h EXT)
Volumen no eliminable (INT 13h
EXT)
Volumen en uso (INT 13h EXT)
Cuenta de bloqueo exedida (INT
13h EXT)
Peticin de expulsin valida fallida
(INT 13h EXT)

Retorno
AH

Significado

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

Operacin sense fallida

Ejemplos

INT 13h AH=00h - Reiniciar


controlador de disco

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

Ejemplos
INT 13h AH=02h - Leer sectores
Parmetros
:
AH = 02h
AL =??
CH =??
CL =??
DH =??
DL =??
ES:BX

Significado
Leer sectores
Nmero de sectores a leer (tiene que ser mayor que 0)
8 bit bajos del nmero de cilindro
Nmero de sector (bits 0-5), 2 bits altos de nmero de cilindro
(bits 6-7, solo disco duro)
Nmero de cabeza
Nmero de unidad
Buffer de datos

Retorno
CF

Significado
Activada en error, limpia si no hay error

AH =??

Estado

AL =??

Nmero de sectores transferidos

Ejemplos
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 direccin que acaba
de leer

Ejemplos
INT 13h AH=04h - Verificar sectores
Parmetros
:

Significado

AH = 41h
AL =??
CH =??

DH =??
DL =??
ES:BX

Verificar sectores
Numero de sectores ha verificar (tiene que ser mayor de 0)
8 bits bajos del nmero del cilindro
Nmero de sector (Bits 0-5), 2 bits altos del nmero del cilindro
(Slo disco duro)
Nmero de cabeza
Nmero de unidad
Buffer de datos

Retorno

Significado

CL =??

CF

Activada en error, limpia si no hay error

AH =??

Estado

AL =??

Nmero de sectores verificados

Ejemplos
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 estn bien
sector_malo_o_error:
;Si viene aqu hay un sector daado o ha habido otro tipo de error

Ejemplos
INT 13h AH=04h - Verificar sectores
Parmetros
:
AH = 41h
BX = 55AAh
DL =??

Significado
Comprobar extensiones
Comprobar extensiones
Nmero de unidad

Retorno

Significado

CF

Activada en error (no hay extensiones), limpia si no hay error

AH =??

Nmero de la versin 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 estn instaladas

CX =??

Lista de bits de las extensiones instaladas (Bit 0-15)

DH =??

Versin de las extensiones (v2.0+??? -- no presente en 1.x)

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

S-ar putea să vă placă și