elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Modo Grafico
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Modo Grafico  (Leído 2,525 veces)
<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Modo Grafico
« en: 3 Abril 2012, 08:09 am »

Hola tenia la de como entrar al modo gráfico en C... estuve buscando y me encuentro que hay que invocar una interrupción de la BIOS... "INT 10h", esa exactamente pero el problema que tengo es que no tengo ni la mejor idea de como hacerlo... si alguien sabe que me quiera ayudar


En línea

<<<--Basura-->>>
Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: Modo Grafico
« Respuesta #1 en: 3 Abril 2012, 14:12 pm »

¿A qué te refieres con modo gráfico? ¿Quieres hacer una interfaz para tu programa?

Igualmente, 10h es una interrupción de 16 bits (http://en.wikipedia.org/wiki/INT_10H) y no la puedes utilizar en programas de 32/64 bits.


En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Re: Modo Grafico
« Respuesta #2 en: 4 Abril 2012, 09:31 am »

MM... para que me entiendas un ejemplo en ASM:

Código
  1. MOV  AH, 0Fh        ;Las primeras tres instrucciones guardan
  2.    INT  10h            ;el modo actual de video que esta usando
  3.    PUSH AX             ;el sistema operativo
  4.    CALL MODO_GRAF
  5.    CALL GRAFICAR
  6.    CALL PAUSA
  7.    POP  AX             ;Y aqui reestablece el modo que estaba usando
  8.    MOV  AH, 0          ;el sistema operativo
  9.    INT  10h
  10.    INT  20h
  11.  
  12.  
  13. MODO_GRAF:
  14.    MOV  AX, 0010H      ;Establece el modo de video (AH=0)
  15.    INT  10h            ;AL=10H modo grafico: 640x350
  16.    MOV  AH, 0BH        ;Establece la paleta de 16 colores
  17.    MOV  BX, 000BH      ;BH=Page=0, BL=Color Verde claro
  18.    INT  10H            ;Para el fondo de pantalla
  19.    RET
  20.  
  21.  
  22. GRAFICAR:
  23.    MOV  BX, 0          ;BL=Color, BH=No. de pagina=0
  24.    MOV  CX, 64         ;CX es la columna de pixel, coord. X
  25.    MOV  DX, 70         ;DX es la linea de pixel, coord Y
  26. G10:
  27.    MOV  AH, 0Ch
  28.    MOV  AL, BL         ;En BL se guardo el color
  29.    INT  10h
  30.    INC  CX             ;Incrementa posiscion en x
  31.    CMP  CX, 576        ;hasta la posicion 576
  32.    JNE  G10
  33.    MOV  CX, 64         ;mueve 64 a CX para usarlo para decrementar
  34.    INC  BL             ;Incrementa el color BL (0-F)
  35.    INC  DX             ;Incrementa en posicion en y
  36.    CMP  DX, 280        ;hasta la posicion 280
  37.    JNE  G10
  38.    RET
  39.  
  40.  
  41. PAUSA: ;Espera a que se pulse una tecla
  42.    MOV  AH, 10h
  43.    INT  16h
  44.    RET
  45.  
http://expo.itch.edu.mx/view.php?f=asm_33

Este ejemplo no es mio pero esta sencillo y muy completo
En línea

<<<--Basura-->>>
Queta

Desconectado Desconectado

Mensajes: 267



Ver Perfil
Re: Modo Grafico
« Respuesta #3 en: 4 Abril 2012, 13:17 pm »

Sí, esto está programado para 16 bits, o sea, es actualmente obsoleto.

Para "simular" estas interrupciones tienes que usar la API de Windows (para consola):

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682073.aspx

Y encontrarás funciones como SetConsoleTextAttribute para cambiar el color de las letras, el fondo...
En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Re: Modo Grafico
« Respuesta #4 en: 4 Abril 2012, 23:58 pm »

Sí, esto está programado para 16 bits, o sea, es actualmente obsoleto.
No Importa

Para "simular" estas interrupciones tienes que usar la API de Windows (para consola):
No quiero llamar la librería de windows...

nada mas quiero llamar la int 10h desde C -.-".
Pero muchas gracias por tratar de ayudarme

Mira tengo un boot y ya lice e link con mi main.c entiendes estoy booteando desde el CD sin sistema operativo...
En línea

<<<--Basura-->>>
Eternal Idol
Moderador
***
Desconectado Desconectado

Mensajes: 5.726


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Modo Grafico
« Respuesta #5 en: 5 Abril 2012, 00:51 am »

Usa inline assembly.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
wxWidgets realizar aplicaciones hibridas (modo consola y modo gráfico)
Programación C/C++
mirloc_As 0 1,941 Último mensaje 20 Mayo 2010, 15:39 pm
por mirloc_As
c++ modo grafico
Programación C/C++
mapers 7 6,522 Último mensaje 18 Agosto 2010, 07:06 am
por Mr.Blue
Diferencia entre modo mantenimiento (nivel 1) y modo gráfico (nivel 5)
GNU/Linux
ccrunch 1 1,920 Último mensaje 26 Julio 2012, 04:11 am
por Epzylon
Tip: Dar permisos a un script en modo gráfico
GNU/Linux
wolfbcn 0 1,098 Último mensaje 26 Septiembre 2012, 02:53 am
por wolfbcn
No se ejecuta el modo gráfico de una aplicación con SDL/GL
Programación C/C++
SrCooper 4 1,454 Último mensaje 4 Septiembre 2013, 23:11 pm
por SrCooper
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines