- Int 15h
-
INT 15h es la forma abreviada de la interrupción 0x15. Esta interrupción controla los servicios extendidos del PC.
Contenido
Características
Antiguamente, esta interrupción se encargaba únicamente de ofrecer acceso a las unidades de cinta, en la actualidad, tiene un amplio rango de funciones como control del joystick, control de APM (Advanced Power Maganement), establecer el modo de velocidad de la cpu, etc...
Lista de servicios de la INT 15h
AH = 00h Unidad de cinta Encender motor de la unidad de cinta AH = 01h Unidad de cinta Apagar motor de la unidad de cinta AH = 02h Unidad de cinta Leer datos AH = 03h Unidad de cinta Escribir datos AH = 21h SISTEMA Datos de informe de errores durante POST AH = 52h Extensiones de INT 13h Interceptar cuando el medio se expulse AH = 84h Joystick Funciones de Joystick AH = 85h SISTEMA Interceptar pulsación de la tecla PetSis AH = 86h BIOS Esperar intervalo de microsegundos AH = 87h SISTEMA Copiar memoria extendida AH = 88h SISTEMA Obtener tamaño de la memoria extendida AH = 89h SISTEMA Pasar a modo protegido AX = 2400h SISTEMA Desactivar línea A20 AX = 2401h SISTEMA Activar línea A20 AX = 5300h APM Comprobar instalación AX = 5301h APM Conectar interfaz de modo real AX = 5302h APM Conectar interfaz de 16 bits AX = 5303h APM Conectar interfaz de 32 bits AX = 5304h APM Desconectar interfaz AX = 5307h APM Establecer estado de energía AX = 5307h CX=0001h APM Pasar pc a modo STANBY AX = 5307h CX=0002h APM Suspender sistema AX = 5307h CX=0003h APM Apagar sistema AX = 5308h APM Activar/desactivar administración de energía AX = 5380h BH=04h APM Obtener tiempo de auto apagado AX = 5380h BH=05h APM Establecer tiempo de auto apagado AX = 5380h BH=0Ch APM Obtener modo de velocidad de CPU AX = 5380h BH=0Dh APM Establecer modo de velocidad de CPU AH = C1h SISTEMA Obtener inicio del segmento de datos de la BIOS extendida AX = C200h Ratón PS/2 Activar/Desactivar ratón AX = C201h Ratón PS/2 Reiniciar ratón AX = C202h Ratón PS/2 Establecer tasa de muestreo AX = C203h Ratón PS/2 Establecer resolución AX = C204h Ratón PS/2 Obtener tipo AX = C205h Ratón PS/2 Inicializar ratón AX = C206h Ratón PS/2 Comandos extendidos AX = C207h Ratón PS/2 Establecer dirección del driver del ratón AX = C208h Ratón PS/2 Escribir al puerto del ratón AX = C209h Ratón PS/2 Leer del puerto del ratón Tabla de funciones de Joystick
DH = 00h Joystick Lee los cuatro botones del joystick DH = 01h Joystick Lee la palanca DH = 02h Joystick Igual que 00h pero en valores de 0 a 255 DH = 03h Joystick Calibra el joystick DH = 04h Joystick Comprobar si el joystick está calibrado DH = 05h Joystick Lee un dato raw de la palanca DH = 08h Joystick Lee el botón especificado DH = 09h Joystick Lee todos los botones hasta el botón 16 DH = 80h Joystick Elimina el driver de la memoria DH = 81h Joystick Comprueba si el driver está en memoria INT 15h AH=00h - Encender motor de la unidad de cinta
Parámetros:
AH = 00h Encender motor Retorna:
CF Activada en error, limpia si no hay error AH = ?? Código de error (86h = No hay casette) Ejemplo:
MOV AH,00h INT 15h JC error ;Si viene hasta aquí el motor está en marcha error: CMP AH,86h ;Comprobamos si AH=86h JE no_hay_cinta ;Si viene hasta aquí hay un error no_hay_cinta: ;Si viene hasta aquí no hay cinta dentro de la unidad
INT 15h AX=C207h - Establecer dirección del driver del ratón
Parámetros:
ES:BX Dirección del controlador o 0000h:0000h para eliminar el driver Retorna:
CF Activada en error, limpia si no hay error AH = ?? Código de error (00h si la operación se completo con éxito) Ejemplo:
org 100h ;Este ejemplo inicia el ratón PS/2 y pone una O en pantalla cada vez que se mueve o se pulsa un botón mov ax,0C207h ;Función de establecer la dirección del driver del ratón mov bx,offset driver_mouse ;Cargamos en BX el offset del código del controlador del ratón int 15h mov ax,0C205h ;Inicializamos el ratón mov bl,8 ;Utilizamos 8 bytes de datos en el ratón int 15h mov ax,0C200h ;Activamos el ratón mov bh,01h ;Activamos el ratón (00h -> Para desactivarlo) int 15h int 20h ;Regresamos a MS-DOS driver_mouse: mov ah,0Eh ;Funcion de imprimir carácter en pantalla mov al,'O' ;Imprimir una O int 10h retf ;Salimos del controlador
Notas
- En Windows XP no funciona la función 86h
- Las funciones de la unidad de cinta sólo funcionan en los IBM PC y PCjr originales
- Para activar el ratón PS/2, primero hay que establecer la dirección del driver por la función C207h, luego inicializarlo con la C205h y finalmente activarlo con la C200h
Véase también
Enlaces externos
Categoría:- Interrupciones
Wikimedia foundation. 2010.