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 

Entradas relacionadas: