Recuperar gráfico de pantalla tras la carga

Moderador: Fundadores

Avatar de Usuario
Sinclair
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3101
Registrado: 04 Jul 2013, 23:42

Re: Recuperar gráfico de pantalla tras la carga

Mensaje por Sinclair »

Efectivamente, en los "DATA" iría lo que sería el código fuente (código máquina) de la pequeña rutina en ensamblador.
Imagen
Avatar de Usuario
Bubu
Demonio segundo orden
Demonio segundo orden
Mensajes: 1125
Registrado: 02 May 2013, 20:35

Re: Recuperar gráfico de pantalla tras la carga

Mensaje por Bubu »

Sí, elfoscuro, es prásticamente lo pispo que la rutina de MH que has ponido, lo que pasa es que esa rutina es enooooorme, y se tarda mucho en escribir. La que he ponido yo pos se escribe en 4 ó 5 leñazos al teclao :-D
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
Avatar de Usuario
elfoscuro
Demonio segundo orden
Demonio segundo orden
Mensajes: 1831
Registrado: 01 Abr 2013, 22:00
Been thanked: 26 times

Re: Recuperar gráfico de pantalla tras la carga

Mensaje por elfoscuro »

Es enorme porque intentaron hacer algo como más universal, pero si te quedas con la primera página, te explican el asunto. Tu se lo has "mascao" ;-)

Un saludo.
Fin de impresión
Avatar de Usuario
Sinclair
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3101
Registrado: 04 Jul 2013, 23:42

Re: Recuperar gráfico de pantalla tras la carga

Mensaje por Sinclair »

Cierto es, y lo de MH como es un artículo de revista se extiende más logicamente, porque además lo explica en dos rutinas, una para transferir el buffer de pantalla a una posición de memoria determinada y otra para recuperarla.

El programa que ha expuesto Bubu en Basic sería la recuperación de la pantalla tras la carga en una posición de memoria determinada.
Imagen
Avatar de Usuario
Fermars
Demonio segundo orden
Demonio segundo orden
Mensajes: 1195
Registrado: 20 Feb 2014, 16:58
Ubicación: El Escorial
Been thanked: 3 times

Re: Recuperar gráfico de pantalla tras la carga

Mensaje por Fermars »

Bueno pues muchas gracias a todos porque lo habéis explicado de lujo :D. Me voy a leer el artículo de MH y probaré la rutina de Bubu, es realmente sencilla! Supongo que siguiendo un procedimiento similar, podemos guardar varias pantallas en distintas direcciones de memoria (hasta llenarla) y después ir mostrando cada una de ellas de forma aleatoria a intervalos regulares de tiempo, algo así como un salvapantallas de gráficos de Spectrum. Mola! :)
Fernando
Avatar de Usuario
Bubu
Demonio segundo orden
Demonio segundo orden
Mensajes: 1125
Registrado: 02 May 2013, 20:35

Re: Recuperar gráfico de pantalla tras la carga

Mensaje por Bubu »

¡ok! Y me gustaría ver esas pantallas que vas a cargar

Para guardar varias pantallas a la vez, efestívaménete es un proceso similar. Deberías tener el visualizador en la dirección 23900 p.ej., y las pantallas a partir de la dirección 24000 p.ej. Así las cosas, tendrías para 6 pantallas:

24000 + 6912 * 6 = 65472 (casi se alcanza el tope en 65535)

Cuando pruebes para 1 pantalla si quieres te modifico el pograma para que cargues 6 pantallas, es fácil ;-)
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
Avatar de Usuario
Fermars
Demonio segundo orden
Demonio segundo orden
Mensajes: 1195
Registrado: 20 Feb 2014, 16:58
Ubicación: El Escorial
Been thanked: 3 times

Re: Recuperar gráfico de pantalla tras la carga

Mensaje por Fermars »

Bubu escribió:¡ok! Y me gustaría ver esas pantallas que vas a cargar

Para guardar varias pantallas a la vez, efestívaménete es un proceso similar. Deberías tener el visualizador en la dirección 23900 p.ej., y las pantallas a partir de la dirección 24000 p.ej. Así las cosas, tendrías para 6 pantallas:

24000 + 6912 * 6 = 65472 (casi se alcanza el tope en 65535)

Cuando pruebes para 1 pantalla si quieres te modifico el pograma para que cargues 6 pantallas, es fácil ;-)
Gracias. Voy a intentar probarlo hoy y os cuento. Las pantallas a cargar son gráficos de carga de juegos, hay algunas obras de arte.
Todo esto realmente viene porque hay veces que quiero hacer pruebas con las ZX Printer y necesito imprimir alguna pantalla y después ejecutar algún programa BASIC. Para volver a imprimir la pantalla necesito volver a cargarla y es un poco rollo. Teniendo la pantalla en otra dirección de memoria y poder llamarla en cualquier momento, es una gran ventaja, sobre todo en tiempo. Y si ya hay varias disponibles, pues mucho mejor porque puedo llamar al gráfico que quiera e imprimirlos de forma sucesiva.
Fernando
Avatar de Usuario
elfoscuro
Demonio segundo orden
Demonio segundo orden
Mensajes: 1831
Registrado: 01 Abr 2013, 22:00
Been thanked: 26 times

Re: Recuperar gráfico de pantalla tras la carga

Mensaje por elfoscuro »

Fermars escribió:Bueno pues muchas gracias a todos porque lo habéis explicado de lujo :D. Me voy a leer el artículo de MH y probaré la rutina de Bubu, es realmente sencilla! Supongo que siguiendo un procedimiento similar, podemos guardar varias pantallas en distintas direcciones de memoria (hasta llenarla) y después ir mostrando cada una de ellas de forma aleatoria a intervalos regulares de tiempo, algo así como un salvapantallas de gráficos de Spectrum. Mola! :)
MH nos vuelve a salvar en este caso ;-)

http://microhobby.speccy.cz/mhf/208/MH208_22.jpg
http://microhobby.speccy.cz/mhf/208/MH208_23.jpg

Aquí explican como comprimir las pantallas, porque si no, con 6 petas la RAM ;-)

Por cierto, por si no lo conoce-is, pongo un link bastante útil:

http://mhoogle.speccy.org/mhoogle.php

Es un buscador tipo google, pero busca en las Microhobby.

Un saludo.
Fin de impresión
Avatar de Usuario
Fermars
Demonio segundo orden
Demonio segundo orden
Mensajes: 1195
Registrado: 20 Feb 2014, 16:58
Ubicación: El Escorial
Been thanked: 3 times

Re: Recuperar gráfico de pantalla tras la carga

Mensaje por Fermars »

Hola, os agradezco a todos las respuestas. Ya he leído las páginas de Microhobby que elfoscuro recomendó y me ha quedado todo bastante claro. La parte de la compresión de pantallas la dejaré para más adelante.

La rutina de Bubu va de miedo :D :D :D . Al principio me dejó un poco atontao porque cargaba la pantalla y tras finalizar se quedaba en negro. Ya os he comentado que soy nulo en programación y código máquina pero mirando el código me preguntaba si cargar la pantalla en la dirección 30000 y luego hacer una llamada a la 40000 no daría problemas ;-). Pues sí, cambiando el LOAD ""CODE a 40000 funciona perfectamente. Es una pasada, muestras la pantalla de un plumazo en un momento y cuando te de la gana.
En las páginas de MH habla de que incluso haciendo NEW la pantalla permanece, aunque en este caso a mi no me funciona, pero bueno, esto no es problema.

Ahora, ya que estamos en materia, quería probar lo de cargar (de momento) 6 pantallas de forma simultánea y luego mostrarlas a intervalos regulares de tiempo (que también se explica en MH). No obstante, si Bubu se anima y me pasa el código "mascao" je je je, estaría genial.
Creo que podría imaginarme como es, simplemente buscar una dirección digamos "base" y hacer la misma rutina 6 veces para cargar las 6 pantallas y luego llamar de forma sucesiva a las distintas direcciones con los RANDOMIZE correspondientes, aunque estoy seguro que no es necesario teclear el programita 6 veces, quizá se pueda reducir bastante reutilizando algunas líneas de código....

Por último y una vez conseguido lo anterior ¿podría guardarlo todo en un cartucho de Microdrive (programa y pantallas) para cargarlo todo de una vez en cualquier momento? supongo que si, quizá haciendo un volcado de todas las direcciones ocupadas junto al listado del programa, pero ahí me pierdo un poco.
No obstante, con dudas como estas se aprende mogollón :D

Saludos.
Fernando
Avatar de Usuario
Bubu
Demonio segundo orden
Demonio segundo orden
Mensajes: 1125
Registrado: 02 May 2013, 20:35

Re: Recuperar gráfico de pantalla tras la carga

Mensaje por Bubu »

Efestivaménete lo de LOAD "" CODE 40000 lo omití queriendo pa ver si tú te dabas cuén, AJAJAJJA

(qué va, se me olvidó, vaya, AJJAjaJAJAAJ, enhorabuena por descubrirlo, eso sisnifica que sabes de qué va todo esto :-) )
Si algo funciona... no lo toques. ¡¡Pero ni de coña!!
Responder

Volver a “Sinclair”