Vous êtes sur la page 1sur 8

UNIVERSIDAD TECNOLGICA DEL PER

FACULTAD DE INGENIERIA SISTEMAS Y ELECTRONICA

LABORATORIO DE ARQUITECTURA DE
COMPUTADORAS
LABORATORIO N 4
TEMA:
LENGUAJE C
CODIGO

1410772
1220666

APELLIDOS Y NOMBRES

CIEZA TARAZONA FABRIZIO


RODRIGUEZ QUISPE ALAN

HORARIO

PC

FECHA

8:15-9:45

PC10 C209

21/10/2015

OBSERVACIONES

Octubre 2015

NOTA

UNIVERSIDAD TECNOLGICA DEL PER


FACULTAD DE INGENIERA ELCTRNICA, MECATRNICA Y TEXTIL

LENGUAJE DE PROGRAMACIN C
MEMORIA DE VIDEO MODO TEXTO
Revisin de conceptos tericos
Se llama modo texto a cualquier modo de vdeo de un ordenador en el que el
contenido de la pantalla se representa internamente en trminos de caracteres
textuales en lugar de pxeles individuales. Tpicamente, la pantalla consistir en
una rejilla uniforme de celdas de caracteres, cada una de las cuales
contendr un carcter del juego de caracteres.
El uso del modo texto se hizo popular a principios de los aos 1970, cuando los
terminales de texto orientados a vdeo empezaron a reemplazar a los teletipos
en el uso interactivo de las computadoras.
Las aplicaciones en modo texto se comunican con el usuario mediante lneas
de comandos (CLIs) y interfaces textuales de usuario (TUIs). Muchos juegos de
caracteres usados en aplicaciones en modo texto tambin incluyen un conjunto
limitado de caracteres semi-grficos predefinidos que pueden usarse para
dibujar cajas y otros grficos rudimentarios usados para destacar el contenido o
simular widgets o controles como los presentes en las aplicaciones escritas
para interfaces grficas (GUIs).
Las ventajas de los modos de texto respecto a los grficos incluyen el menor
consumo de memoria y la ms rpida manipulacin de pantalla. Adems, las
aplicaciones en modo texto tienen unos requisitos de ancho de banda
relativamente bajos en uso remoto. Una desventaja obvia del modo texto es la
restriccin del contenido de pantalla, que lo hace inviable para muchos tipos de
aplicaciones.
Una caracterstica importante de los programas en modo texto es que asumen
un ancho constante de las fuentes, donde cada carcter tiene la misma
anchura en pantalla, lo que permite mantener fcilmente la alineacin vertical
cuando se muestran caracteres semi-grficos.
Segn el entorno, el buffer de pantalla puede ser directamente accesible, como
memoria convencional, para los programas locales.
La distincin entre los programas en modo texto y grfico puede a veces ser
difusa, especialmente en ordenadores con tarjetas VGA, debido a que muchos
programas en modo texto recientes llevaron al extremo las posibilidades de
dicho hardware manipulando la controladora de vdeo. Por ejemplo, redefinan
el juego de caracteres para crear caracteres semi-grficos a medida, e incluso
simulaban un cursor de ratn grfico redefiniendo la apariencia de los
caracteres sobre los que dicho cursor quedaba en cada momento. Tambin
pueden usarse estas tcnicas para videojuegos 2D que necesiten aprovechar
la mayor velocidad de manipulacin de los modos de texto respecto a los
grficos.

LABORATORIO DE ARQUITECTURA DE COMPUTADORAS

UNIVERSIDAD TECNOLGICA DEL PER


FACULTAD DE INGENIERA ELCTRNICA, MECATRNICA Y TEXTIL

Muchos programas modernos con interfaz grfica simulan el estilo de los


programas en modo texto, especialmente cuando es importante preservar la
alineacin vertical del texto, por ejemplo, durante la programacin. Existen
tambin componentes software que emulan modos de texto, tales como los
emuladores de terminal o la consola de Windows.
Modos de texto comunes en PC
Segn el adaptador grfico usado, hay disponible una variedad de modos de
texto en los computadores personales IBM y compatibles. Estos se detallan a
continuacin:
Resolucin
texto

Tamao
caracter

Resolucin
grfica

Colores

Adaptadores

8025

914

720350

Blanco y
negro

MDA

4025

88

320200

16 colores

CGA, EGA

8025

88

640200

16 colores

CGA, EGA

8025

814

640350

16 colores

EGA

8043

88

640350

16 colores

EGA

8025

916

720400

16 colores

VGA

8050

98

720400

16 colores

VGA

El texto MDA poda ser realzado con los atributos de brillo, subrayado,
inversin y parpadeo.
Las tarjetas de vdeo suelen ser compatibles hacia atrs, es decir, EGA soporta
todos los modos MDA y CGA, VGA soporta los modos MDA, CGA y EGA,
etctera.
El modo texto ms usado con diferencia en entorno DOS y en las primeras
consolas Windows es el de 80 columnas por 25 filas con 16 colores. Este modo
estaba disponible en prcticamente todos los computadores personales IBM y
compatibles. Todos los modos 8025 tambin tena un modo virtual 8024,
usado por algunas aplicaciones que necesitaban una barra de estado en la

LABORATORIO DE ARQUITECTURA DE COMPUTADORAS

UNIVERSIDAD TECNOLGICA DEL PER


FACULTAD DE INGENIERA ELCTRNICA, MECATRNICA Y TEXTIL

ltima fila, como los emuladores de terminal. En realidad era el mismo modo
8025, pero restringido por software para hacer inaccesible la ltima fila.
Existen otros dos modos texto VGA, 9043 y 9050, que se usan muy raras
veces. Los modos de texto a 40 columnas nunca fueron muy populares, y se
usaban slo con fines demostrativos o como hardware muy antiguo que no
soportaban los modos a 80 columnas.
Algunas tarjetas de vdeo (por ejemplo S3) soportaban modos de texto muy
grandes, como 10037 o incluso 160120. En los sistemas Linux se usaba a
menudo un programa llamado SVGATextMode con las tarjetas SVGA para
estableces modos de texto de consola muy grandes.
Revisar el contenido del archivo Modos de video.txt para mayor informacin.

Se muestra a continuacin un programa que muestra un mensaje en


pantalla.

LABORATORIO DE ARQUITECTURA DE COMPUTADORAS

UNIVERSIDAD TECNOLGICA DEL PER


FACULTAD DE INGENIERA ELCTRNICA, MECATRNICA Y TEXTIL

#include <stdio.h>
#include <stdlib.h>
/***************************************/
void MuestraCaracter(char Caracter, int x, int y)
{
unsigned char far *p =(unsigned char far *)0xB8000000;
p = p + 2*(80*y + x);
*p = Caracter;
}
/***************************************/
int main(void)
{
char Estatus, Tecla, Atributo, Aux;
unsigned char far *p;
system("CLS");
MuestraCaracter(
MuestraCaracter(
MuestraCaracter(
MuestraCaracter(

'H', 10, 5 );
'o', 15, 7 );
'l', 20, 5 );
'a', 25, 7 );

system( "PAUSE" );
return 0;
}
/***************************************/

Parte prctica.
Problema 1: Para presentar durante el laboratorio.
Completar la siguiente aplicacin escrita en lenguaje C la misma que luego de
solicitar un mensaje al usuario, emplee los caracteres de dicho mensaje para
formar la letra M (eme mayscula). Dicha letra debe aparecer centrada en
pantalla. Cada trazo que forma parte de la letra debe ser formada con la cuarta
parte de los caracteres del mensaje ingresado. Considerar que el mensaje no
podr tener ms de 80 caracteres.
(20 puntos)
/***************************
Descripcin:
Programa que utiliza un mensaje ingresado por el usuario
para formar la letra M en pantalla

LABORATORIO DE ARQUITECTURA DE COMPUTADORAS

UNIVERSIDAD TECNOLGICA DEL PER


FACULTAD DE INGENIERA ELCTRNICA, MECATRNICA Y TEXTIL

Autor: Luis Raymi


Cdigo de Docente: C08078
***************************/
/*XXXXXXXXXXXXXXXXXXXXXXXXX*/
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
/*XXXXXX PROTOTIPOS XXXXXXXXXXXXXXXXXXX*/
void
void
void
void
void

LineaDiagAsc (char Cadena[], int n, int x, int y);


LineaDiagDesc(char Cadena[], int n, int x, int y);
LineaVertAsc (char Cadena[], int n, int x, int y);
LineaVertDesc(char Cadena[], int n, int x, int y);
MuestraCaracter(char Caracter, int x, int y);

/*XXXXXX PROGRAMA PRINICPAL XXXXXXXXXXX*/


int main( void )
{
char Mensaje[81];
int N;
int x1, y1;
int x2, y2;
int x3, y3;
int x4, y4;
clrscr();
/*system(CLS);*/
printf("LABORATORIO DE ARQUITECTURA DE COMPUTADORAS\n");
/*----Inicializacin de variables----*/
printf(Ingrese frase\n?);
gets(Mensaje);
/*Clculo de la longitud de Mensaje*/
for( N = 0; Mensaje[N] != 0; N++ )
;
/*Completar la inicializacin de las coordenadas
de inicio de cada lnea*/
x1 = (80 - (N/2+2)) / 2;
y1 = (25-N/4)/2 + N/4 - 1;
x2 = ((80 (N/2+3)) / 2;
y2 = (25-N/4)/2 + N/4 - 11;

LABORATORIO DE ARQUITECTURA DE COMPUTADORAS

UNIVERSIDAD TECNOLGICA DEL PER


FACULTAD DE INGENIERA ELCTRNICA, MECATRNICA Y TEXTIL

x3
y3
x4
y4

=
=
=
=

(80 (N/4)/2 + N/4 -1;


(25-N/4)/2 + N/4 -1;
(80 (N/2+26) /2;
(25-N/4)/2 + N/4 -11;

/*----Generacin de la M----*/
LineaVertAsc ( Mensaje
, N/4, x1, y1 );
LineaDiagDesc( Mensaje+N/4 , N/4, x2, y2 );
LineaDiagAsc ( Mensaje+N/2 , N/4, x3, y3 );
LineaVertDesc( Mensaje+3*N/4, N/4, x4, y4 );
return 0;
}
/*XXXXXXXXXXXXXXXXXXXXXXXXX*/
void LineaDiagAsc( char Cadena[], int n, int x, int y )
{
/*Completar*/
}
/*XXXXXXXXXXXXXXXXXXXXXXXXX*/
void LineaDiagDesc( char Cadena [], int n, int x, int y )
{
/*Completar*/
}
/*XXXXXXXXXXXXXXXXXXXXXXXXX*/
void LineaVertAsc( char Cadena [], int n, int x, int y )
{
/*Completar*/
}
/*XXXXXXXXXXXXXXXXXXXXXXXXX*/
void LineaVertDesc( char Cadena [], int n, int x, int y )
{
/*Completar*/
}
/*XXXXXXXXXXXXXXXXXXXXXXXXX*/
void MuestraCaracter(char Caracter, int x, int y)
{
char far *p =(char far *)0xB8000000;
p = p + 2*(80*y + x);

LABORATORIO DE ARQUITECTURA DE COMPUTADORAS

UNIVERSIDAD TECNOLGICA DEL PER


FACULTAD DE INGENIERA ELCTRNICA, MECATRNICA Y TEXTIL

*p = Caracter;
}
/*XXXXXXXXXXXXXXXXXXXXXXXXX*/

LABORATORIO DE ARQUITECTURA DE COMPUTADORAS

Vous aimerez peut-être aussi