Funciones BIOS e Interrupciones DOS: Referencia Completa
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 18,43 KB
Funciones de la BIOS para Control de Video
Función | Código de Función | Parámetros | Retorno |
Activa modo de video | AH = 00 | AL = Modo de video | AL = Bandera del modo de video / Byte del modo del controlador de CRT |
Asigna forma del cursor de modo de texto | AH = 01 | CH = Fila inicial de scan, CL = Fila final de scan. Normalmente, una celda de carácter tiene 8 líneas de scan (0-7). Así, CX = 0607 es el cursor normal de subrayado, CX = 0007 es un cursor de bloque completo. Si el bit 7 de CH está activado, usualmente significa "ocultar el cursor". Así, CX = 2607 es un cursor invisible. Algunas tarjetas de video tienen 16 líneas de scan (00-0f). Algunas tarjetas de video no usan el bit 5 de CH. Con estas, haga inicio > fin (ej. CX = 0706). | |
Asigna posición del cursor | AH = 02 | BH = Página, DH = Fila, DL = Columna | |
lee la posicion del cursor y su tamaño | a = 03 | b = pagina | ax = 0,x = inicio d la linea d scan,cl = fin d la linea d scan,d = fila,dl = columna |
lee la posicion delligt pen (no funciona en sistemas vga) | a = 04 | a = status (0=no disparado,1=disparado),bx = pixel x,x = pixel y,cx = numero d linea del pixel xa ls mo2 0f-10,d = caracter y,dl = caracter x | |
selecciona pagina activa d la pantaya | a = 05 | al = numero d pagina | |
scroy up window | a = 06 | al = lineas d scroy (0 = borra),b = atributo d ls lineas en blanco | |
scroy down window | a = 07 | al = lineas d scroy (0 = borra),b = atributo d ls lineas en blanco | |
lee caracter y atributo en la posicion del cursor | a = 08 | b = numero d pagina | a = color,al = caracter |
escribe caracter y atributo en la posicion del cursor | a = 09 | al = caracter,b = numero d pagina,bl = color,cx = numero d veces xa escribir l caracter | |
escribe caracter solo en la posicion del cursor | a = 0a | al = caracter,b = numero d pagina,bl = color,cx = numero d veces xa escribir l caracter | |
asigna color d fondo/borde | a = 0b,b = 00 | bl = color del fondo/borde (l borde solo en mo2 d texto) | |
asigna paleta | a = 0b,b = 01 | bl = id d paleta (solo fue valido en l cga,xo ls nuevas tarjetas lo soportan en muxos o to2 ls mo2 graficos) | |
escribe pixel grafico | a = 0x | al = color,b = pagina,cx = x,dx = y | |
lee pixel grafico | a = 0d | b = pagina,cx = x,dx = y | al = color |
salida d teletipo | a = 0e | al = caracter,bl = color (solo en modo grafico) | |
lee modo d video actual | a = 0f | al = modo d video | |
escribe string (ega+,lo q significa como minimo 1 pc at) | a = 13 | al = modo d escritura,b = pagina,bl = color,cx = longitud del string,d = fila,dl = columna,s:bp = posicion del string |
INT 21H AX = 4C00H
Descripción: Esta rutina finalizará el programa y devolverá el control al DOS. Debe llamar a esta rutina para finalizar los programas.
Uso: Entrada: AX = 4C00H
Salida: Ninguna - Registros afectados: Ninguno
Status del teclado INT 21H AH = 0BH
Descripción: La función de esta rutina es detectar si se ha pulsado una tecla.
Uso: Entrada: AH = 0BH
Salida: AL = FF si caracter disponible AL = 0 si caracter no disponible - Registros afectados: AL
Entrada de un carácter desde teclado
INT 21H AH = 8H
Descripción: La función de esta rutina es esperar un carácter del teclado sin escribirlo por pantalla y almacenarlo en el
registro AL en forma de código ASCII.
Uso: Entrada: AH = 8H
Salida: AL = car cter ASCII de la tecla pulsada Registros afectados: AL
Leer una línea de programa
INT 21H AH = 0AH
Descripción: La función de esta rutina es la de obtener una línea de datos del teclado (que finaliza al pulsar el retorno de
carro) y almacenarlos en un rea de memoria. Los caracteres son mostrados en la pantalla al ser tecleados.
Uso: Entrada: AH = 0AH
DS contiene la dirección del segmento de memoria en el cual se almacenan los datos introducidos.
DX contiene la dirección del offset de la zona de memoria del segmento anterior en la que se almacenan
los datos.
En el primer byte del área debe indicarse el máximo número de caracteres a introducir sin superar 255.
Salida: Ninguna en registro
En el segundo byte del área se almacena el número de caracteres tecleados sin contar el retorno de carro.
Registros afectados: Ninguno
Salida de un carácter por pantalla
INT 21H AH = 2H
Descripción: La función de esta rutina es visualizar un carácter.
Uso: Entrada: AH = 2H
DL contiene el código ASCII del carácter a visualizar.
Salida: Ninguna - Registros afectados: Ninguno
Sacar un string a la pantalla
INT 21H AH = 9H
Descripción: Su función es la de sacar una cadena de caracteres ASCII por pantalla.
Uso: Entrada: AH = 9H
DS contiene el valor de la dirección del segmento del comienzo de la cadena de caracteres a sacar. DX contiene el offset de dicha cadena en el segmento anterior.
El último byte de la cadena de caracteres debe ser el caracter $, que no se muestra en pantalla.
Salida: Ninguna - Registros afectados: AX
Establecer nuevo vector de interrupción
INT 21H AX = 25H
Descripción: Esta rutina establece un nuevo vector de interrupción.
Uso: Entrada: DS:DX Dirección de la rutina de servicio
AL: Número de la interrupción
Salida: Actualización de la tabla de vectores - Registros afectados: Ninguno
Obtiene número de interupción
INT 21H AX = 35H
Descripción: Esta rutina devuelve el vector de interrupción del número de interrupción que se especifique en AL.
Uso: Entrada: AL Número de la interrupción
Salida: ES:BX Vector de la interrupción - Registros afectados: Ninguno
Posicionar el cursor
INT 10H AH = 02H
Entrada: DH = fila (0-24) DL = columna (0-79) BH = número de página
Escribir un caracter en pantalla, donde está el cursor
INT 10H AH = 0AH
Entradas: BH = número de página AL = caracter a escribir
Leer caracter y atributo de la posición actual del cursor
INT 10H AH = 08H
Entradas: BH = número de página
Salidas: AL = caracter leído AH = atributo del caracter leído
Escribir caracter y atributo en la posición actual del cursor
INT 10H AH = 09H
Entradas: BH = número de página
BL = atributo del caracter CX = número de caracteres a escribir AL = caracter a escribir