¡ Para algún sabio !
Publicado por Alejandro Tomé (14 intervenciones) el 18/08/2000 00:00:00
Hola a todos. Alguien me puede explicar las partes del FAR, que es ese hexadecimal y que indica el atributo de texel_struc.
Gracias desde ya.
#define screen (* screen_ptr )
/* Definicion de estructuras del programa para la pantalla */
typedef struct texel_struc {
unsigned char ch; /* Caracter de pantalla */
unsigned char attr; /* attributo de pantalla */
} texel;
typedef texel screen_array[25][80];
screen_array far *screen_ptr = (screen_array far *) 0xB8000000L;
struct texel_struc pantalla[25][80];
void salva_pantalla( void )
{
int x, y;
for ( x = 0 ; x <= 25; x++ )
for ( y = 0 ; y <= 80 ; y++ ){
pantalla[ y ][ x ].ch = screen[y][x].ch;
pantalla[ y ][ x ].attr = screen[y][x].attr;
}
}
void restaura_pantalla( void )
{
int x, y;
for ( x = 0 ; x <= 25; x++ ) {
for ( y = 0 ; y <= 80 ; y++ ) {
screen[ y ][ x ].ch = pantalla[y][x].ch;
screen[ y ][ x ].attr = pantalla[y][x].attr;
}
}
void main()
{
/* lo que se guarda en memoria */
clrscr();
printf("Prueba de\n"); printf("SAVESCREEN");
/* salvo la pantalla en memoria */
salva_pantalla(); getch();
clrscr();printf("Presione una tecla"); getch();
/* restauro la pantalla guarda en memoria */
restaura_pantalla(); getch();
}
Gracias desde ya.
#define screen (* screen_ptr )
/* Definicion de estructuras del programa para la pantalla */
typedef struct texel_struc {
unsigned char ch; /* Caracter de pantalla */
unsigned char attr; /* attributo de pantalla */
} texel;
typedef texel screen_array[25][80];
screen_array far *screen_ptr = (screen_array far *) 0xB8000000L;
struct texel_struc pantalla[25][80];
void salva_pantalla( void )
{
int x, y;
for ( x = 0 ; x <= 25; x++ )
for ( y = 0 ; y <= 80 ; y++ ){
pantalla[ y ][ x ].ch = screen[y][x].ch;
pantalla[ y ][ x ].attr = screen[y][x].attr;
}
}
void restaura_pantalla( void )
{
int x, y;
for ( x = 0 ; x <= 25; x++ ) {
for ( y = 0 ; y <= 80 ; y++ ) {
screen[ y ][ x ].ch = pantalla[y][x].ch;
screen[ y ][ x ].attr = pantalla[y][x].attr;
}
}
void main()
{
/* lo que se guarda en memoria */
clrscr();
printf("Prueba de\n"); printf("SAVESCREEN");
/* salvo la pantalla en memoria */
salva_pantalla(); getch();
clrscr();printf("Presione una tecla"); getch();
/* restauro la pantalla guarda en memoria */
restaura_pantalla(); getch();
}
Valora esta pregunta


0