INTERRUPCIONES DE SOFTWARE
Estas interrupciones pueden ser activadas síncronamente por cualquier programa, simplemente invocando la interrupción deseada. Las interrupciones 20H a 3F son usadas por MS-DOS para comunicarse con sus módulos y con otras aplicaciones. Las interrupciones con números más altos o más bajos son usadas por el BIOS de solo lectura (ROM BIOS) y otros programas especializados.
El uso de interrupciones es en esencia la columna vertebral de cualquier lenguaje ensamblador. El acceso, al video, teclado, memoria y almacenamiento es vital. MS-DOS accesa los recursos de la PC en la mayoría de los casos por medio de interrupciones.
Int 21h (Servicios de MS-DOS).
Procedimientos que proporcionan entrada-salida,, manejo de archivos y administración de memoria. También se conoce como llamadas funciones de MS-DOS.
Las interrupciones 21H de MS-DOS proporcionan varias funciones para poder acceder el video y desplegar información en el mismo. Cada una tiene una funcionalidad establecida ya sea para desplegar un carácter o una secuencia de caracteres.
FUNCIÓN 02H
DESPLIEGA UN CARÁCTER A LA PANTALLA O VIDEO USA STDOUT (DISPOSITIVOS DE SALIDA ESTÁNDAR).
Esta función nos despliega el carácter cuyo código hexagesimal corresponde al valor almacenado en el registro DL, no se modifica ningún registro al utilizar este comando.
FUNCIÓN 09H
DESPLIEGA UNA CADENA DE CARACTERES EN LA PANTALLA.
Envía una cadena de caracteres al dispositivo de salida estándar STDOUT. Despliega una secuencia contigua de caracteres al video.
FUNCIÓN 40H
ESCRIBIR A UN DISPOSITIVO O A UN ARCHIVO.
Esta funcion permite escribir a cualquier archivo el cual tiene un canal de comunicación preasignado.
Int 10H (Servicios de Video).
Procedimientos que muestran rutinas que controlan la posición del cursor, escriben texto a color, desplazan la pantalla y muestran gráficos de video.
Utilizando el BIOS para desplegar información en el video.
El BIOS, le deja al programador el control del hardware. El video es accesado a través de la INT 10H y proporciona las siguientes funciones:
• Poner el modo de video para utilizar texto o gráficos.
• Posicionar el cursor
• Leer la posición del cursor y su Configuración
• Seleccionar la pagina de despliegue
• Generador de caracteres
FUNCIÓN 02H
• POSICIONAR EL CURSOR EN UNA DE LAS PAGINAS DE VIDEO, DENTRO DE LAS COORDENADAS VALIDAS DE TEXTO.
• Las posiciones del texto son definidas en función a las posiciones 0,0 (esquina superior izquierda) y 79,24 (esquina inferior derecha) aproximadamente.
FUNCIÓN 09
• DESPLEGAR CARÁCTER Y ATRIBUTOS
• Despliega un número especifico de copias del carácter con un atributo definido empezando en la posición actual del cursor.
• Despliega el carácter y su atributo en la página especifica.
FUNCIÓN 0AH
• DESPLEGAR CARACTERES EN POSICIÓN ACTUAL DEL CURSOR
• Despliega un número específico de copias del carácter definido empezando en la posición actual del cursor.
• Despliega el carácter y su atributo en la página especificada tantas veces como sea indicada en el registro CX.
FUNCIÓN 0EH
• DESPLEGAR TEXTO EN MODO DE TELETIPO
• Despliega caracteres e incrementa o actualiza la posición del cursor.
• Esta función despliega el carácter al video tal como si fuese un teletipo.
FUNCIÓN 01H
• LEER EL TECLADO CON ECO
• Lee un carácter del teclado y lo despliega. Esta es la forma mas sencilla de leer un carácter del teclado. La función espera hasta tener un carácter disponible y lo despliega al tenerlo.
FUNCIÓN 3FH
• LEE ARCHIVO O DISPOSITIVO
• Lee información de un archivo o un dispositivo (debe de tener un andel asignado). Dicha información es almacenada en un área de memoria.
• Esta función lee la cantidad de bytes especificados en el registro CX del handle especificado por BX y los almacena en el área de memoria dada por DS:DX.
Int 16h (Servicios de Teclado).
Procedimientos que leen el teclado y comprueban su estado.
Las funciones del BIOS para leer del teclado son mucho mas poderosas pero a la vez mas complejas.
Leer un carácter del teclado sin desplegarlo.
Verificar el status del teclado.
Interrogar las banderas del teclado.
La interrogación a las banderas del teclado regresan el status de los siguiente:
El Shift derecho fue oprimido
El Shift izquierdo fue oprimido
La tecla Ctrl fue oprimida
La tecla Alt fue oprimida.
FUNCION 00H.
LEE UN CARACTER DEL TECLADO.
Regresa un valor ASCII y un código de escaneo del buffer del teclado.
Esta función espera hasta que una tecla sea oprimida y regresa su código ASCII y el código de escaneo. Si la tecla oprimida no tiene un valor de ASCII asociado, regresara el valor de 0 (las teclas de la flecha son un ejemplo.
FUNCION 01H.
LEE STATUS DEL TECLADO.
Esta función es muy útil para permitir que los programas verifiquen si existe alguna tecla pendiente de proceso y si no continuar con su ejecución. Su funcionamiento es como sigue:
Checa si existe en el buffer del teclado alguna tecla pendiente.
Si una tecla se encuentra pendiente extrae una copia de la misma.
Si el teclado del buffer contiene al menos una tecla a bandera de ceros es apagada.
Si el buffer del teclado no contiene una tecla, la bandera de ceros es encendida.
Int 17H (Servicios de Impresora).
Procedimientos que inicializan, imprimen y devuelven el estado de la impresora.
MANEJANDO LA IMPRESORA.
MS-DOS y el BIOS proporcionan servicios para accesar la impresora. De nuevo, el programador tiene mayor control sobre la impresora si usa el BIOS. La impresora es accesada a través de la int 17H y proporciona las siguientes funciones:
Escribir un carácter la impresora.
Inicialización de la impresora.
Lectura del status de la impresora.
FUNCION 00H
ESCRIBIR UN CARÁCTER A LA IMPRESORA.
Esta función escribe un byte al puerto paralelo especificado por el registro DX. El BIOS toma como base el puerto 0 para el primer puerto que es LPT1 e incrementa de uno en uno la base. Algunos BIOS son capaces de soportar hasta 4 puertos paralelos, sin embargo, la mayoría soporta solo hasta LPT3.
FUNCION 01H.
INICIALIZA EL PUERTO DE IMPRESIÓN.
Esta función inicializa el puerto de impresión y regresa su status en el registro A. El BIOS toma como base el puerto 0 para el primer puerto que es LPT1 e incrementa de uno en uno la base. Algunos BIOS son capaces de soportar hasta 4 puertos paralelos, sin embargo, la mayoría soporta solo hasta LPT3.
FUNCION 02H.
INTERROGA EL STATUS DEL PUERTO DE IMPRESIÓN.
Esta función interroga el estatus actual de la impresora y lo regresa en el registro A. El BIOS toma como base el puerto 0 para el primer puerto que es LPT1 e incrementa de uno en uno la base. Algunos BIOS son capaces de soportar hasta 4 puertos paralelos, sin embargo, la mayoría soporta solo hasta LPT3.