area de video en modo grafico
Publicado por felipe (1 intervención) el 26/04/2007 18:12:32
Saludos, estoy escribiendo una aplicacion la cual coloca pixeles en la pantalla segun donde se posicione el cursor y se de clic, para la vidualizacion estoy usando el modo 12 de video (640x 480), mi duda esque despues de que tengo todos los pixeles puestos en la pantalla me interesa guardalos de alguna manera para luego pasarlos a un archivo, para luego poder abrirlos, si el usuario asi lo desea.
el metodo que hasta ahora estoy usando es copiar todo en un arreglo de 16k elementos todos los bytes que se encuentran en la posicion 0a00h hasta (0a000h + FFFFh), osea estoy tratando de guardar el segmento de video, y para volver a presentar los datos estoy usando el mismo metodo, (es decir pasar data desde un arreglo al area de video), pero este metodo no me esta dando resultado, por favor necesito de su ayuda para saber en que puedo estar fallando, aka les dejo un pedazo de codigo
SAVEPIXEL proc near
mov bx, 0a000h
mov es, bx
mov di, 0
mov si, 0
bucle:
mov bx, es:[si]
mov spant[di], bx
inc di
cmp di, lenght
jne bucle
ret
endp
LOADPIXEL proc near
call SETVIDEO
mov bx, 0a000h
mov es, bx
mov di, 0
mov si, 0
xor bx, bx
bucle1:
mov bx, spant[si]
mov es:[di], bx
inc si
cmp si, lenght
jne bucle1
ret
endp
el metodo que hasta ahora estoy usando es copiar todo en un arreglo de 16k elementos todos los bytes que se encuentran en la posicion 0a00h hasta (0a000h + FFFFh), osea estoy tratando de guardar el segmento de video, y para volver a presentar los datos estoy usando el mismo metodo, (es decir pasar data desde un arreglo al area de video), pero este metodo no me esta dando resultado, por favor necesito de su ayuda para saber en que puedo estar fallando, aka les dejo un pedazo de codigo
SAVEPIXEL proc near
mov bx, 0a000h
mov es, bx
mov di, 0
mov si, 0
bucle:
mov bx, es:[si]
mov spant[di], bx
inc di
cmp di, lenght
jne bucle
ret
endp
LOADPIXEL proc near
call SETVIDEO
mov bx, 0a000h
mov es, bx
mov di, 0
mov si, 0
xor bx, bx
bucle1:
mov bx, spant[si]
mov es:[di], bx
inc si
cmp si, lenght
jne bucle1
ret
endp
Valora esta pregunta


0