- Llamada de interrupción del BIOS
-
Las llamadas de interrupción del BIOS son una facilidad que los programas DOS, y otro tipo de porgramas como cargadores de arranque, usan para invocar las funciones del BIOS. Algunos sistemas operativos también usan el BIOS para probar e inicializar recursos de hardware durante las primeras etapas del arranque.
Este artículo trata específicamente sobre las llamadas de función de los BIOS usados en los computadores compatibles con el IBM PC, es decir, los computadores de la arquitectura x86.
Contenido
Invocando una interrupción
Invocar una interrupción puede hacerse usando la instruccción INT en lenguaje ensamblador de los procesadores x86. Por ejemplo, para imprimir un caracter a la pantalla usando la interrupción 10h del BIOS, las siguientes instrucciones deberán ser ejecutadas:
MOV AH, 0Eh ; Imprime caracter en la pantalla MOV AL, '!' ; caracter a imprimir INT 10h ; Llamada a las funciones de video del BIOS
Tabla de interrupciones
Abajo se encuentra una lista de interrupciones del BIOS. Note que algunos BIOS (particularmente los viejos) no soportarán todas estas interrupciones.
Vector de interrupción
en HexDescripción 00h CPU: Ejecutado después de un intento de división por cero o cuando un cociente no cabe en el destino 01h CPU: Ejecutado después de cada instrucción de código de máquina mientras el flag de trace esté activo 02h CPU: NMI. Usado por el Power On Self Test (POST) para errores de memoria 03h
CPU: La más baja interrupción no reservada, es usada exclusivamente para depuración, y el manehador INT 03h
siempre es implementado por un programa de depuración04h
CPU: Numeric Overflow. Usualmente causado por la instrucción INTOh
cuando el flag del overflow está encendido05h
Ejecutado cuando es presionado Shift-Print Screen, así como cuando la instrucción BOUNDh
detecta una falla de límite06h
CPU: Llamada cuando una excepción de opcode indefinido (código inválido). Usualmente instalado por el sistema operativo 07h
CPU: Llamada cuando se intenta usar una instrucción de coma flotante y no está disponible un coprocesador numérico 08h
IRQ0: Implementada por el componente de temporización del systema; llamado 18,2 veces por segundo (una cada 55 ms) por el PIC 09h
IRQ1: LLamada después de que cada tecla es presionada o soltada (como también durante el tiempo en que una tecla es mantenida presionada) 0Bh
IRQ3: Llamada por los puertos seriales 2 y 4 (COM2 y COM4) cuando es necesaria atención 0Ch
IRQ4: Llamada por los puertos seriales 1 y 3 (COM1 y COM3) cuando es necesaria atención 0Dh
IRQ5: Llamada por el controlador del disco duro (PC/XT) y el segundo puerto paralelo LPT2 (AT) cuando es necesaria atención 0Eh
IRQ6: Llamada por el controlador de disco floppy cuando es necesaria atención 0Fh
IRQ7: Llamada por el primer puerto paralelo LPT1 (impresora) cuando es necesaria atención 10h
Servicios de video - Instalado por el BIOS o el sistema operativo; llamado por programas de software AH
Descripción (Ing) Descripción (Esp) 00h
Set Video Mode Selecciona modo de video 01h
Set Cursor Shape Ajusta forma del cursor 02h
Set Cursor Position Ajusta la posición del cursor 03h
Get Cursor Position And Shape Lee la posición y la forma del cursor 04h
Get Light Pen Position Lee la posición del Light Pen 05h
Set Display Page Selecciona la Página de exhibición 06h
Clear/Scroll Screen Up Borra la pantalla / Desplazamiento (Scroll) hacia arriba 07h
Clear/Scroll Screen Down Borra la pantalla / Desplazamiento (Scroll) hacia abajo 08h
Read Character and Attribute at Cursor Lee un caracter y su atributo en la posición del cursor 09h
Write Character and Attribute at Cursor Escribe un caracter y su atributo en la posición del cursor 0Ah
Write Character at Cursor Escribe un caracter en la posición del cursor 0Bh
Set Border Color Ajusta el color del borde de la pantalla 0Eh
Write Character in TTY Mode Escribe un caracter en modo TTY 0Fh
Get Video Mode Lee el modo de video 13h
Write String Escribe un string 11h
Instalado por el BIOS; retorna la lista del equipo instalado 12h
Instalado por el BIOS o el systema operativo; retorna el tamaño de la memoria convencional 13h
Servicios de disco de bajo nivel; instalado por el BIOS o el systema operativo; llamado por programas de software AH
Descripción (Ing) Descripción (Esp) 00h
Reset Disk Drives Resetea las unidades de disco 01h
Check Drive Status Chequea el estado de las unidades 02h
Read Sectors From Drive Lee sectores desde la unidad 03h
Write Sectors To Drive Escribe sectores hacia la unidad 04h
Verify Sectors On Drive Verifica sectores en la unidad 05h
Format Track On Drive Formatea una pista en la unidad 08h
Get Drive Parameters Lee los parámetros de la unidad 09h
Init Fixed Drive Parameters Inicia los parámetros de la unidad fija (disco duro) 0Ch
Seek To Specified Track Hace un Seek a la pista especificada 0Dh
Reset Fixed Disk Controller Resetea el controlador de la unidad fija 15h
Get Drive Type Lee el tipo de la unidad 16h
Get Floppy Drive Media Change Status Lee el estado de cambio del medio de la unidad floppy puerto serial. Usado por programas de software AH
Descripción (Ing) Descripción (Esp) 00h
Serial Port Initialization Inicialización del puerto serial 01h
Transmit Character Transmite caracter 02h
Receive Character Recibe caracter 03h
Status Estado 15h
Miesceláneas (Rutinas de soporte para servicios del sistema) AH
AL
Descripción (Ing) Descripción (Esp) 4Fh
Keyboard Intercept Intercepta el teclado 83h
Event Wait Espera evento 84h
Read Joystick Lee el Joystick 85h
Sysreq Key Callout 86h
Wait Espera 87h
Move Block 88h
Get Extended Memory Size Lee el tamaño de la memoria extendida C0h
Get System Parameters Lee los parámetros del sistema C1h
Get Extended BIOS Data Area Segment Lee el segmento del área de datos extendida del BIOS C2h
Pointing Device Functions Funciones del dispositivo apuntador E8h
01h
Get Extended Memory Size (Newer function, since 1994). Gives results for memory size above 64 Mb. Lee el tamaño de la memoria extendida E8h
20h
Query System Address Map. The information returned from e820 supersedes what is returned from the older AX=E801hh
andAH=88hh
interfaces.Información sobre el Mapa de memoria del sistema 16h
Implementado por el BIOS o el sistema operativo. Provee rutinas a ser llamadas por programas de software que se comunican con el teclado AH
Descripción (Ing) Descripción (Esp) 00h
Read Character Lee caracter 01h
Read Input Status Lee el estado de entrada 02h
Read Keyboard Shift Status Lee el estado de las teclas de desplazamiento (SHIFT, CTRL, ALT) 10h
Read Character Extended Lee el caracter extendido 11h
Read Input Status Extended Lee el estado de entrada extendido 12h
Read Keyboard Shift Status Extended Lee el estado de las teclas de desplazamiento extendido 17h
Servicios de Impresora - Usado por los programas de software para comunicarse con la impresora AH
Descripción (Ing) Descripción (Esp) 00h
Print Character to Printer Imprime un caracter a la impresora 01h
Initialize Printer Inicializa la impresora 02h
Check Printer Status Lee el estado de la impresora 18h
Ejecuta el IBM ROM BASIC: Los computadores personales de originales de IBM contienen el BASIC en ROM para ser ejecutado por esta rutina en el evento de una falla en la carga (boot). LLamado por el BIOS 19h
Boot Strap Loader. Después del POST, esta interrupción es usada por el BIOS para cargar el sistema operativo 1Ah
Servicios del Real Time Clock (RTC) (Reloj de Tiempo Real) - Llamado por programas de software para comunicarse con el RTC AH
Descripción 00h
Lee el RTC 01h
Ajusta el RTC 02h
Lee la hora del RTC 03h
Ajusta la hora del RTC 04h
Lee la fecha del RTC 05h
Ajusta la fecha del RTC 06h
Ajusta la alarma RTC 07h
Resetea la alarma del RTC 1Bh
Instalado por el sistema operativo; automáticamente llamado por INT 9h
cuando ha sido presionado Ctrl-Break1Ch
Llamado automáticamente por INT 08h
; disponible para el uso por programas de software cuando una rutina necesita ser ejecutada regularmente1Dh
No debe ser llamado; simplemente un puntero para la Tabla de Parámetros del Video (VPT), que contiene datos sobre modos de video 1Eh
No debe ser llamado; simplemente un puntero para la Tabla de Parámetros del Diskette (DPT), conteniendo una variedad de información concerniente a las unidades de diskette 1Fh
No debe ser llamado; simplemente un puntero para Tabla la Tabla de Caracteres de Gráficos de Video (VGCT), que contiene los datos para los caracteres ASCII 80h
aFFh
41h
Puntero de dirección: Tabla de Parámetros del Disco Fijo (FDPT) (Primer unidad de disco) 46h
Puntero de dirección: Tabla de Parámetros del Disco Fijo (FDPT) (Segunda unidad de disco) 4Ah
Llamado por el RTC para alarma 70h
IRQ8: Llamado por el RTC 74h
IRQ12: Llamado por el ratón 75h
IRQ13: Llamado por el coprocesador matemático 76h
IRQ14: Llamado por el controlador IDE primario 77h
IRQ15: Llamado por el controlador IDE secundario Hooks del DOS
El IBMBIO.COM del PC DOS, y el su equivalente, el IO.SYS del MS-DOS, se enganchaban (hook) al INT 13 para la detección del cambio del disco floppy, llamadas para formateo de pistas, corregir errores de límites en el DMA, trabajar alrededor de problemas en el IBM PC ROM BIOS del "01/10/84" que modela el código FC antes de la primera llamada. El vector de interrupción 13 puede apuntar a un hook de software en vez de la rutina en el BIOS, con el que algunos virus búlgaros son conocidos para usar en contra del software de monitoreo de virus.[1]
INT 18h: Ejecuta el BASIC en ROM
El
INT 18h
tradicionalmente saltaba a una implementación de BASIC almacenada en ROM, el Cassette BASIC. Esta llamada típicamente sería invocada si el BIOS no podía identificar ningún volumen booteable en el inicio. (En el momento en que el IBM PC fue lanzado, en 1981, el BASIC en ROM fue una característica clave). A medida que el tiempo pasó y el BASIC ya no fue despachado en todos los PC, esta interrupción simplemente exhibiría un mensaje de error indicando que no fue encontrado ningún dispositivo booteable (el famoso "No ROM BASIC", o un mensaje más explicativo en versiones posteriores del BIOS). En otras versiones del BIOS se solicitaba al usuario insertar un volumen booteable y presionar una tecla, y después que el usuario lo hiciera, retornaría al bootstrap loader para tratar de cargar de nuevo.Véase también
- BIOS
- IBM PC ROM BIOS
- Direcciones base de entrada/salida
- IBM PC DOS, MS DOS
- IBM BASIC
Referencias
Enlaces externos
Categorías:- BIOS
- Interrupciones
- Arquitectura x86
Wikimedia foundation. 2010.