Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: J_F_NASH en 30 de Julio de 2005, 11:30:29 AM

Título: Inicializar La Vga Con _asm
Publicado por: J_F_NASH en 30 de Julio de 2005, 11:30:29 AM
 Tratando de inicializar la VGA con el código de abajo compila correctamente pero a la hora de ejecutar me da un error de acceso a la memoria justo en "int 0x10".



#include <dos.h>

void ModoMcga(void){
   _asm{
           mov al,0x13
           xor ah,ah
           int 0x10
           
           mov ax,0xA000
           mov es,ax
           xor di,di
           xor ax,ax
           mov cx,32000
           rep stosw
   }
}


void main(){
ModoMcga();
}
Título: Inicializar La Vga Con _asm
Publicado por: fiero en 30 de Julio de 2005, 11:52:48 AM
 ¿Qué sistema operativo tienes? En w2000 por ejemplo, ya no es posible el acceso a las interrupciones, por eso la mayoría de los juegos antiguos no funcionan.

un saludo
Título: Inicializar La Vga Con _asm
Publicado por: ethernet en 30 de Julio de 2005, 11:54:26 AM
 :_)
Título: Inicializar La Vga Con _asm
Publicado por: AK47 en 30 de Julio de 2005, 12:51:01 PM
 Saludos
Yo te recomendaria que te olvides de aprender a programar la VGA y le dieses un vistazo a las SDL o cosas por el estilo. Por ejemplo, creo que  pygame esta muy bien (que raro que ethernet no lo haya comentado, con lo pythonfilo que es...). Ademas tiene tutoriales y todas esas cosas que vienen tan bien cuando empiezas :) Incluso hay un pequeño proyecto de un tio que hizo un juego en un dia precisamente con pygame, y lo tiene todo documentado y explicado en su pagina web: agameinaday.

Si en todo caso quieres seguir dandole al viejo modo 13, tendras que instalar win98 o algo asi porque de windows 2000 para arriba no me parece que le haga mucha gracia eso de toquetear las interrupciones asi, sin avisar ;)
Título: Inicializar La Vga Con _asm
Publicado por: J_F_NASH en 30 de Julio de 2005, 11:33:36 PM
Cita de: fiero¿Qué sistema operativo tienes? En w2000 por ejemplo, ya no es posible el acceso a las interrupciones, por eso la mayoría de los juegos antiguos no funcionan.

un saludo
XP.






S2