interrupcciones
TRANSCRIPT
LAS INTERRUPCIONES DE LA ROM BIOS INT *->* SERVICIO *->* SUB SERV *->* NOMBRE 00h --> Error de División 01h --> Paso a paso 02h --> NMI 03h --> Punto de Ruptura 04h --> Desbordamiento 05h --> BOUND fuera de rango 06h --> Coprocesador no disponible 07h --> IRQ0 08h --> IRQ1 de teclado 09h --> IRQ2 Reservada 0Ah --> IRQ3 (COM2) 0Bh --> IRQ4 (COM1) 0Ch --> IRQ5 Disco Duro 0Dh --> IRQ6 disquete 0Eh --> IRQ7 (LPT1)
MONITOR 10h --> Controlador de video 10h --> 00h --> Establecer modo de video 10h --> 01h --> Establecer tamaño de cursor 10h --> 02h --> Establece posición del cursor 10h --> 03h --> Lee la posición del cursor 10h --> 04h --> Lee de la posición del lápiz óptico 10h --> 05h --> Definición de la página de visualización activa 10h --> 06h --> Inicialización o desplazamiento de la ventana hacia arriba 10h --> 07h --> Inicialización o desplazamiento de la ventana hacia abajo 10h --> 08h --> Leer carácter y atributo 10h --> 09h --> Escribe un carácter y su atributo 10h --> 0Ah --> Escribe un carácter 10h --> 0Bh --> Definición de la paleta de cuatro colores 10h --> 0Ch --> Escritura de un pixel 10h --> 0Dh --> Lectura de un pixel 10h --> 0Eh --> Escribe un carácter en modo teletipo 01h --> 0Fh --> Obtener el modo de video 10h --> 10h --> 00h --> Definición del registro de la paleta 10h --> 10h --> 01h --> Especifica color del borde 10h --> 10h --> 02h --> Define la paleta y del borde 10h --> 10h --> 03h --> bits de parpadeo o intensidad 10h --> 10h --> 07h --> Lee un registro de color de borde 10h --> 10h --> 08h --> Leer el registro de color del borde 10h --> 10h --> 09h --> Lectura de la paleta y del borde 10h --> 10h --> 12h --> Definición del bloque de registros de color 10h --> 10h --> 13h --> Definición del estado de color de la página 10h --> 10h --> 15h --> Lectura del registro de color
10h --> 10h --> 17h --> Lectura del bloque de registros de color 10h --> 10h --> 1Ah --> Lectura del estado del color de la página 10h --> 10h --> 1Bh --> Transforma a valores de la escala de grises 10h --> 11h --> 00h --> Carga caracteres del usuario 10h --> 11h --> 01h --> Carga del tipo de letra de 8 * 14 de la ROM 10h --> 11h --> 02h --> Carga del tipo de letra de 8 * 8 de la ROM 10h --> 11h --> 03h --> Definición del bloque especificado 10h --> 11h --> 04h --> Carga del tipo de letra de 8 * 16 10h --> 11h --> 20h --> Definición del puntero de tipos de interrupción 1Fh 10h --> 11h --> 21h --> Preparación de la interrupción 43h para los tipos de usuario 10h --> 11h --> 22h --> Preparación de la interrupción 43h para los tipos de 8 * 14 de la ROM 10h --> 11h --> 23h --> Preparación de la interrupción 43h para los tipos de 8 * 8 de la ROM 10h --> 11h --> 24h --> Preparación de la interrupción 43h para los tipos de 8 * 16 de la ROM 10h --> 11h --> 30h --> Obtener información del generador de carácter
MONITOR 10h --> 12h --> 10h --> Devuelve Información sobre configuración del video 10h --> 12h --> 20h --> Selección de impresión de pantalla alternativa 10h --> 12h --> 30h --> Definición de líneas de barrido 10h --> 13h --> Escritura de una cadena de caracteres 10h --> 1Ah --> Lee/escribe código de combinación de visualización 10h --> 1Bh --> Devolver operatividad/información de estado 10h --> 1Ch --> Salvaguarda o recuperación del estado de video
CONFIGURACION DE PC 11h --> Lee la configuración del equipo
LECTURA Y ESCRITURA 12h --> Tamaño convencional de memoria
DISCOS DUROS Y FLOPPYS 13h --> Controlador de disco 13h --> 00h --> Reinicialización del sistema de disco. 13h --> 01h --> Obtener estado del sistema de disco 13h --> 02h --> Lectura del sector 13h --> 03h --> Escritura del sector 13h --> 04h --> Verificación del sector 13h --> 05h --> Formateo de pista 13h --> 06h --> Formateo de pista defectuosa 13h --> 07h --> Formateo de una unidad de disco. 13h --> 08h --> Obtener parámetros de la unidad 13h --> 09h --> Inicialización las tablas de parámetros del disco duro 13h --> 0Ah --> Lectura larga (todo el sector) 13h --> 0Bh --> Escritura largo (todo el sector)
13h --> 0Ch --> Buscar un cilindro 13h --> 0Dh --> Reinicialización del sistema de disco duro 13h --> 0Eh --> Lectura del registro intermedio del sector 13h --> 0Fh --> Escritura del registro intermedio del sector 13h --> 10h --> Test para estado de la unidad 13h --> 11h --> Recalibrar unidad 13h --> 12h --> Diagnóstico del controlador de la RAM 13h --> 13h --> Diagnóstico del controlador de la Unidad 13h --> 14h --> Diagnóstico interno del controlador 13h --> 15h --> Obtener tipo de disco duro 13h --> 16h --> Búsqueda del estado de cambio de disco 13h --> 17h --> Establecer tipo de disco 13h --> 18h --> Establecer tipo de medio para formatear 13h --> 19h --> Aparcar cabezas 13h --> 1Ah --> Formatear unidad
COMUNICACIONES 14h --> Controlador del puerto de comunicaciones serie 14h --> 00h --> Inicializar el puerto de comunicaciones 14h --> 01h --> Envío de un carácter al puerto de comunicaciones 14h --> 02h --> Lectura del carácter del puerto de comunicaciones 14h --> 03h --> Estado del puerto de comunicaciones 14h --> 04h --> Inicializa el puerto de comunicaciones 14h --> 05h --> Control del puerto de comunicaciones extendido
FUNCIONES BÁSICAS DE ENTRADA Y SALIDA 15h --> Extensiones de entrada/salida 15h --> 00h --> Enceder el motor del casete 15h --> 01h --> Apagar el motor del casete 15h --> 02h --> Lectura bloques de datos del casete 15h --> 03h --> Escribir bloques en el casete 15h --> 0Fh --> Interrupción periódica del formateo de la unidad ESDI 15h --> 21h --> 00h --> Lectura de información sobre errores detectados en la de arranque (POST) 15h --> 21h --> 01h --> Escritura de los errores detectados en la de arranque (POST) 15h --> 4Fh --> Intercepción del teclado 15h --> 80h --> Dispositivo abierto 15h --> 81h --> Dispositivo cerrado 15h --> 82h --> Fin de programa 15h --> 83h --> Espera de acción 15h --> 84h --> Lectura del mando del Joystick 15h --> 85h --> Pulsación de la Tecla Sys Req 15h --> 86h --> Espera durante un intervalo especificado 15h --> 87h --> Movimiento de datos en modo protegido 15h --> 88h --> Tamaño de la memoria extendida 15h --> 89h --> Cambio a modo protegido 15h --> 90h --> Dispositivo ocupado
15h --> 91h --> Prueba tras arranque del dispositivo (POST) 15h --> C0h --> Identificación del equipo 15h --> C1h --> Obtener el segmento de datos del BIOS extendido 15h --> C2h --> 00h --> Activa/desactiva ell dispositivo puntero 15h --> C2h --> 01h --> Reinicialización del dispositivo puntero 15h --> C2h --> 02h --> Establece ratio de prueba del dispositvo apuntador 15h --> C2h --> 03h --> Definición de la resolución del apuntador 15h --> C2h --> 04h --> Tipo de dispositivo apuntador 15h --> C2h --> 05h --> Inicialización del dispositivo puntero 15h --> C2h --> 06h --> Definición de la escala o búsqueda del estado 15h --> C2h --> 07h --> Definición de la dirección del programa de tratamiento del dispositivo puntero 15h --> C3h --> Definición del tiempo de espera 15h -->C4h-->Selección de la opción programable
TECLADO 16h --> Controlador del teclado 16h --> 00h --> Lee carácter desde el teclado 16h --> 01h --> Informa si hay carácter preparado 16h --> 02h --> Búsqueda de las marcas del teclado 16h --> 03h --> Retardo de repetición 16h --> 04h --> Definición de la pulsación del teclado 16h --> 05h --> Escribir en el buffer del teclado 16h --> 10h --> Lectura del carácter extendido 16h --> 11h --> Búsqueda del estado del teclado expandido 16h --> 12h --> Búsqueda de las marcas del teclado expandido
IMPRESORA 17h --> Controlador del puerto paralelo de impresora 17h --> 00h --> Envío del carácter a la impresora 17h --> 01h --> Inicializar impresora 17h --> 02h --> Obtener estado de la impresora
REINICIALIZACIÓN DEL SISTEMA "REEBOT" 19h --> Reebot del sistema
CONTROLADOR DEL TIEMPO 1Ah --> Controlador del reloj de tiempo real (CMOS) 1Ah --> 00h --> Leer el reloj en tiempo real 1Ah --> 01h --> Establecer el reloj en tiempo real 1Ah --> 02h --> Leer la hora 1Ah --> 03h --> Establecer la hora 1Ah --> 04h --> Obtener fecha 1Ah --> 05h --> Fijar fecha
1Ah --> 06h --> Establecer la alarma 1Ah --> 07h --> Desactiver la alarma 1Ah --> 0Ah --> Leer contador de días 1Ah --> 0Bh --> Establecer contador de días 1Ah --> 80h --> Sonido
Interrupciones de DOS Para accesar a los servicios de DOS es por medio de la instrucción INT. Los servicios de DOS, que se accesan con las interrupciones [0x20,0x3f]. La interrupción 0x21 es la fuente principal de los servicios de MS-DOS. Las funciones de la interrupción 0x21 se llaman colocando el número de la función deseada en el registro del procesador AH, colocando cualquier parámetro necesario en los demás registros y ejecutando la insterrupción 0x21. Los servicios que da esta interrupción se muestran en la tabla 3.1:
Table 3.1: Servicios de la interrupción 0x21
Servicio Acción
0x00 Termina Programa.
0x01 Entrada de Teclado
0x02 Salida de carácter a video
0x03 Entrada por el dispositivo Aux. estándar
0x04 Salida por el dispositivo Aux. estándar
0x05 Salida a impresora
0x06 Consola E/S
0x07 Entrada de consola sin eco
0x08 Entrada de consola sin eco sin checar ^C
0x09 Imprime cadena
0x0A Lee cadena
0x0B Checa el estado de la entrada
0x0C Limpia el buffer del teclado e invoca el servicio
0x0D Reset del disco
0x0E Selecciona disco
0x0F Abre archivo existente
0x10 Cierra archivo
0x11 Busca el primer archivo con algún atributo en el nombre
0x12 Busca el siguiente archivo con algún atributo en el nombre
0x13 Borra archivos
0x14 Lectura secuencial
0x15 Escritura secuencial
0x16 Crea archivo
0x17 Renombra archivo
0x18 Servicio interno de DOS
0x19 Busca el disco actual
0x1A Habilita una localidad DTA
0x1B Información FAT del disco por omisión
0x1C Información FAT de un disco específico
0x1D - 0x20 Servicio interno de DOS
0x21 Lectura aleatoria
0x22 Escritura aleatoria
0x23 Tamaño de archivo
0x24 Habilita un campo de registro aleatorio
0x25 Habilita nueva dirección en el vector de interrupciones
0x26 Crea un nuevo PSP
0x27 Lectura de bloque aleatoria
0x28 Escritura de bloque aleatoria
0x29 Busca el nombre de archivo
0x2A Obtiene la fecha
0x2B Actualiza la fecha
0x2C Obtiene la hora
0x2D Actualiza la hora
0x2E Habilita o inicializa el switch verify
0x2F Obtiene el DTA actual
0x30 Obtiene el número de versión de DOS
0x31 Termina un proceso y lo mantiene residente
0x32 Servicio interno de DOS
0x33 Checa por ^BREAK
0x34 Servicio interno de DOS
0x35 Obtiene una dirección del vector de interrupciones
0x36 Obtiene el espacio libre en disco
0x37 Servicio interno de DOS
0x38 Regresa la información dependiente a un país
0x39 Crea un subdirectorio
0x3A Borra un subdirectorio
0x3B Cambia de directorio actual
0x3C Crea un archivo
0x3D Abre un archivo
0x3E Cierra un manejador de archivo
0x3F Lee de un archivo o dispositivo
0x40 Escribe a un archivo o dispositivo
0x41 Borra un archivo
0x42 Mueve apuntador de lectura / escritura
0x43 Cambia los atributos de un archivo
0x44 Control de E/S
0x45 Duplica un manejador de archivo
0x46 Forza la duplicación de un manejador de archivo
0x47 Obtiene el directorio actual en una unidad de disco específico
0x48 Asigna memoria
0x49 Libera memoria asignada
0x4A Habilita Bloque
0x4B Carga o ejecuta un programa
0x4C Salir (este servicio puede terminar un programa)
0x4D Obtiene el código de regreso de un subproceso
0x4E Encuentra el primer archivo con algún atributo en el nombre
0x4F Encuentra el siguiente archivo con algún atributo en el nombre
0x50 - 0x53 Servicio interno de DOS
0x54 Obtiene estado de verificación
0x55 Servicio interno de DOS
0x56 Renombre archivo
0x57 Obtiene o actualiza la fecha y hora de un archivo
0x58 Servicio interno de DOS
0x59 Obtiene error extendido de DOS 3+
0x5A Crea un archivo sencillo DOS 3+
0x5B Crea un nuevo archivo DOS 3+
0x5C Acceso a un archivo DOS 3+
0x5E00 Obtiene el nombre de una máquina DOS 3+
0x5E02 Habilita impresora para DOS 3+
0x5E03 Obtiene impresora para DOS 3+
0x5F03 Redirecciona un servicio de DOS 3+
0x5F04 Cancela la redirección DOS 3+
0x62 Obtiene el segmento de un programa DOS 3+
0x67 Habilita manejador de contador DOS 3.30
0x68 Asigna archivo DOS 3.30