Foros del Web » Programación para mayores de 30 ;) » Programación General »

Duda Ensamblador 386 Modo de video gráfico 12H

Estas en el tema de Duda Ensamblador 386 Modo de video gráfico 12H en el foro de Programación General en Foros del Web. Hola a todos, soy nuevo en este foro, y nuevo en esto en general, sólo tengo conocimientos básicos de ensamblador (80x86) , tengo una duda ...
  #1 (permalink)  
Antiguo 27/07/2006, 02:18
 
Fecha de Ingreso: julio-2006
Mensajes: 3
Antigüedad: 18 años, 6 meses
Puntos: 0
Duda Ensamblador 386 Modo de video gráfico 12H

Hola a todos, soy nuevo en este foro, y nuevo en esto en general, sólo tengo conocimientos básicos de ensamblador (80x86) , tengo una duda acerca del modo gráfico 12 H.

Tenia que dibujar gráficos que se desplazaran por la pantalla, y utilizando la interrupción que escribe un píxel punto, la imagen al volverse a dibujar al momento de desplazarse parecia como si parpadera.

Por ahí alguien me dijo, usa despliegue directo en video, empecé a cambiar los bytes en la memoria de video, ya que imaginaba que funcionaba como el modo 04H, cada byte representaría cuatro pixeles y que moviéndole al valor de los dos bits cambiaría los colores. Pero pues al activar todos los bits en un byte aparecía una pequeña linea en la pantalla, el caso es que solo pude cambiar los pixeles moviendo un bit por cada píxel, como pude hice mi procedimiento putpixel.

PUTPIXEL PROC NEAR
PUSH DS
PUSH EDI
PUSH DX
;// Lo que sigue es para calcular el byte en el que está el pixel (fila*640+columna)/8
MOV EAX,0
MOV AX,PIXELY
SHL EAX,1
MOV EBX,EAX
SHL EAX,2
MOV ECX,EAX
MOV EDX,EBX
ADD EAX,EBX
ADD EAX,ECX
ADD EAX,EDX
SHL EAX,5
MOV ECX,EAX
MOV EBX,0
MOV BX,PIXELX
ADD ECX,EBX
ADD EAX,EBX
SHR EAX,3

MOV EDI,EAX
MOV DS,VGA ;VGA=0A000H

;Ya que se encontró el byte tiene que estar en alguno de los 3 a la derecha, por los 3 corrimientos de arriba en donde perdí información.

AND ECX,111B
BTC CX,0
BTC CX,1
BTC CX,2

;Que están al revés, uff…
BTS WORD PTR DS:[EDI],CX
POP DX
POP EDI
POP DS
RET
PUTPIXEL ENDP


A martillazos logré que se cambiaran los pixeles, solo blanco y negro, lo unico bueno de esto fue que el dibujito ese, se podía mover a la derecha o a la izquierda también con corrimientos. Pero los atributos, jamás supe, ¿Se necesita de interrupciones o algo así?, ¿Se guardan en otro segmento de memoria?, ¿porque el orden de los bits con respecto a los pixeles es
8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7?, ¿Alguna referencia?

Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:46.