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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Puerto y Memoria Grafica?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Puerto y Memoria Grafica?  (Leído 2,483 veces)
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Puerto y Memoria Grafica?
« en: 1 Noviembre 2014, 22:42 pm »

Buenas! Estaba revisando este codigo.. Lo que hace es modificar la paleta de colores y escribir pixeles de colores (en forma de franjas) en la pantalla... al presionar una tecla, modifica la paleta y otra vez lo mismo..

Código
  1. mov ax, 0013h ; Modo Grafico (ah = 00h / al = 13h)
  2. int 10h ; Esta interrupción controla los servicios de pantalla del PC
  3. mov ax, 0A000h ; Direccion de video (grafica)
  4. mov ds, ax   ; DS = A000h (memoria de graficos). DS esta concatenado con DI
  5.  
  6. ; ========== Cambiar paleta de colores ==========
  7.  
  8. mov dx, 3c8h ; Empezamos a modificar la paleta de colores
  9. mov al, 0     ; Desde la entrada 0
  10. out dx, al
  11. inc dx       ; DX = 3C9h.
  12.  
  13. mov cx, 10 ; Se van a modificar 10 entradas ( cx se ve afectado con loop )
  14.  
  15. SigEntrada:   ; Modificar 10 entradas de la paleta
  16.  
  17. ; Rojo.
  18. mov al, 0
  19. mul cl
  20. out dx, al
  21. ; Verde
  22. mov al, 0
  23. mul cl
  24. out dx, al
  25. ; Azul
  26. mov al, 6
  27. mul cl
  28. out dx, al
  29.  
  30.  loop SigEntrada
  31.  
  32. ; **************************************
  33.  
  34.   xor dx, dx
  35. L1: ; Cuando vuelve a esta etiqueta no limpia dx, util para cambiar los colores
  36. mov cx, 64000
  37.   xor bx, bx
  38.   xor di, di
  39.  
  40. NuevaLinea:
  41. mov [di], dx
  42. inc di
  43. inc bx
  44. cmp bx, 6400
  45. jne SigPixel
  46. xor bx, bx
  47. inc dx
  48. SigPixel:
  49. loop NuevaLinea
  50.  
  51. ; Esperar tecla
  52. mov ah, 10h
  53. int 16h
  54.  
  55. inc dx ; Otra entrada en la paleta de colores y volver a cargar
  56. jmp L1



Ese codigo es 16-Bits y lo corro en Modo real.. Ahora la pregunta:

Si lograse pasar a modo protegido y quisiese dibujar algo avanzado (digamos, una ventana moderna, con muchos colores y bien ubicados, como un SO moderno) deberia de tener a nivel de nucleo, "algo" que modifique la paleta y haga el respectivo "out", como en ese codigo, verdad? O es de otra forma?

Y de ser así, seria como un driver,, y como podría ser la forma mas "optima" de implementar esa rutina? O algún material de referencia.. Parece trabajo difícil, de mucha matemática  :rolleyes:

Saludos! Gracias!


En línea

T. Collins

Desconectado Desconectado

Mensajes: 206


Ver Perfil
Re: Puerto y Memoria Grafica?
« Respuesta #1 en: 1 Noviembre 2014, 23:26 pm »

http://wiki.osdev.org/Drawing_In_Protected_Mode


En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Puerto y Memoria Grafica?
« Respuesta #2 en: 2 Noviembre 2014, 00:37 am »

Hi! Gracias T.Collins, me estoy basando en gran parte en la misma web.. pero justo eso no lo había visto.. Eso confirma mi suposición..

Y si, debe ser bastante complicado.. Me cuesta entender como lograr la combinación de colores por pixel para lograr por ejemplo.. una textura humana, o una imagen de calidad.. el proceso de definir la mezcla correcta en la paleta para pintar un misero pixel, para luego modificar esa paleta para lograr otro pixel... suena imposible,, pero claro que no lo es..  :silbar:

Gracias! Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No indica la memoria de la Gràfica
Hardware
escri11 3 2,814 Último mensaje 21 Junio 2011, 15:09 pm
por escri11
Poner memoria y tarjeta grafica a mi pc?..
Hardware
$Edu$ 7 5,781 Último mensaje 4 Diciembre 2011, 20:30 pm
por $Edu$
Memoria extra de 128 GB en tu smartphone con puerto USB-C con un solo gesto
Noticias
El_Andaluz 0 1,549 Último mensaje 4 Marzo 2016, 18:15 pm
por El_Andaluz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines