Hace unos dias estaba mirando un código sencillito en Basic que se publicó hace tiempo en el CPCWiki, y me di cuenta de que programitas que representaran fractales en Dragon basicamente no hay.
Así que me puse manos a la obra, modifiqué y adapté el código para el Dragon, y ahora se pueden generar vistosas imágenes de Mandelbrot y Julia en varios modos de pantalla y paletas de colores.
De lo que estoy más orgulloso es del dither de colores, que da la impresión de tener más de 4 colores. Lo malo es que, como esta hecho en basic puro y duro, pues tarda lo suyo. Eso si, al terminar la imagen, la podeis grabar en cinta o disco para compartirla o visualizarla.
Podeis descargaron el programa en texto plano, cinta o disco aquí.
Espero que os guste!
Fractales en el Dragon!
- robcfg
- Amiga 2500
- Mensajes: 2190
- Registrado: 07 May 2009, 15:34
- Sistema Favorito: Amstrad CPC
- primer_sistema: Atari 800XL/600XL
- Ubicación: Estocolmo
- Gracias dadas: 1048 veces
- Gracias recibidas: 213 veces
- Contactar:
Fractales en el Dragon!
- Adjuntos
-
- Ejemplo de conjunto Mandelbrot en PMode 3, 4 colores
- K3FRAC10_MANDE_3_1_32.png (6.88 KiB) Visto 10707 veces
- alt
- Amiga 2500
- Mensajes: 4416
- Registrado: 07 Sep 2004, 21:52
- Ubicación: madrid
- Gracias dadas: 1251 veces
- Gracias recibidas: 2246 veces
- Contactar:
- mcleod_ideafix
- Amiga 2500
- Mensajes: 5316
- Registrado: 06 Oct 2009, 04:12
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Vectrex
- Primera consola: TV Games/Pong Clone
- Ubicación: Jerez de la Frontera
- Gracias dadas: 12 veces
- Gracias recibidas: 54 veces
- Contactar:
Re: Fractales en el Dragon!
¿Cuánto te tarda? Porque yo recuerdo haber hecho eso mismo con el ZX81 para probar a ver qué tal iba el Memopak HRG (un módulo de gráficos de alta resolución para ZX81)...

Y creo que se llevó toda la noche

Y creo que se llevó toda la noche

Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- robcfg
- Amiga 2500
- Mensajes: 2190
- Registrado: 07 May 2009, 15:34
- Sistema Favorito: Amstrad CPC
- primer_sistema: Atari 800XL/600XL
- Ubicación: Estocolmo
- Gracias dadas: 1048 veces
- Gracias recibidas: 213 veces
- Contactar:
Re: Fractales en el Dragon!
Pues sacandolo en monocromo a 256x192, que es una resolucion parecida a la del zx81 con el pack ese (y haciendo dither de las bandas) se lleva unas 5 horas.
Tengo que ver de optimizar el algoritmo y pasarlo a ensamblador a ver que tal va.
Tengo que ver de optimizar el algoritmo y pasarlo a ensamblador a ver que tal va.
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
Re: Fractales en el Dragon!
Iba a hacer la misma pregunta del tiempo, 5h buff, esto estaría chulo saberlo con un C64 que tiene el chip customizado de gráficos, supongo que los tiempos deberian ser menores, no?¿
- mcleod_ideafix
- Amiga 2500
- Mensajes: 5316
- Registrado: 06 Oct 2009, 04:12
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Vectrex
- Primera consola: TV Games/Pong Clone
- Ubicación: Jerez de la Frontera
- Gracias dadas: 12 veces
- Gracias recibidas: 54 veces
- Contactar:
Re: Fractales en el Dragon!
mentalthink escribió:Iba a hacer la misma pregunta del tiempo, 5h buff, esto estaría chulo saberlo con un C64 que tiene el chip customizado de gráficos, supongo que los tiempos deberian ser menores, no?¿
La última vez que miré, el chip gráfico del C64 no incorporaba una GPU que pudiera hacer cálculos en paralelo con la CPU, así que aunque más rápido que el ZX81 seguro, no tiene por qué ser más rápido que el Dragon

De hecho, de acuerdo con un benchmark que ejecuté en varios ordenadores, y en que se mide sobre todo la velocidad de cálculos en punto flotante y la velocidad de ejecución de bucles en BASIC, me da a mi que el Dragon sería más rápido que el C64 (siempre hablo de BASIC, y usando la misma resolución ambos). Más aun cuando el C64 no dispone de comandos en BASIC para poder pintar un triste punto en alta resolución en pantalla, así que a la lentitud del cálculo del conjunto de Mandelbrot en sí, únele que hay que hacer en BASIC el cálculo de la dirección de pantalla a partir de las coordenadas, y alterar la memoria con POKE de forma adecuada.
Otra cosa sería hacerlo en C/M. Ahí ya no sabría decirte quien gana.
El benchmark (pincha en ella para verla centrada, y luego en la lupa del + para verla a tamaño completo)
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
Re: Fractales en el Dragon!
Bueno esta vez insconciente de mi hablaba en serio, no me referia a GPU ni coñas, lo que pasa que siendo un procesador específico para gráficos, por eso he supuesto que debería ser más rápido, en Basic ya vemos que no... Esto si ha alguién le sobra el tiempo y sabe de ASM de varios sistemas estaría bien por curiosidad.
Porque lo que yo entiendo de ese chip del Commodore es que en realidad la carga le va a el, y la CPU como que se queda libre de cosas... es por eso lo he pensao, pero a saber si algo que tiene que estar tanto rato calculando como que es mucho más lento...
Porque lo que yo entiendo de ese chip del Commodore es que en realidad la carga le va a el, y la CPU como que se queda libre de cosas... es por eso lo he pensao, pero a saber si algo que tiene que estar tanto rato calculando como que es mucho más lento...
- mcleod_ideafix
- Amiga 2500
- Mensajes: 5316
- Registrado: 06 Oct 2009, 04:12
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Vectrex
- Primera consola: TV Games/Pong Clone
- Ubicación: Jerez de la Frontera
- Gracias dadas: 12 veces
- Gracias recibidas: 54 veces
- Contactar:
Re: Fractales en el Dragon!
mentalthink escribió:lo que pasa que siendo un procesador específico para gráficos, por eso he supuesto que debería ser más rápido
El VIC-II del C64 no es ningún tipo de procesador. Es un controlador gráfico muy sencillo, cuya única aceleración consiste en poder sobreimpresionar sprites en pantalla y poder desplazarla. Por lo demás, la pantalla no es más que un framebuffer almacenado en memoria. El procesador del C64 (el 6510) es quien tiene que hacer todos los cálculos para a partir de las coordenadas X,Y averiguar qué bit de qué byte de pantalla hay que encender o apagar. Igualito que, por ejemplo, lo que debe hacer el Spectrum, el Dragon o el Amstrad.
Para lo que es pintar puntos, estos equipos junto con el C64 se comportan de la misma forma, y si alguno pinta más rápido que otro, será porque puede calcular la dirección de pantalla más rápido. En BASIC lo que pasa es que el del C64 es tan pobre que no tiene comandos para pintar puntos, así que los cálculos que los demás equipos hacen en C/M en respuesta a los comandos PLOT, PSET, etc, en el C64 tienes que hacerlo tooodo en BASIC.
El MSX es cosa aparte: al tener el frame buffer en memoria no direccionable, salvo a través de IN y OUT, el cálculo de la dirección le cuesta más o menos lo mismo que a los demás, pero el acceso a memoria para encender o apagar el pixel le cuesta más que a los otros.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- Habi
- Dragon 32
- Mensajes: 27
- Registrado: 29 Jul 2012, 14:04
- Sistema Favorito: Amstrad PCW
- primer_sistema: Spectrum +2
- consola_favorita: Vectrex
- Primera consola: Atari 2600
- Gracias dadas: 32 veces
- Gracias recibidas: 4 veces
- Contactar:
Re: Fractales en el Dragon!
robcfg escribió:Hace unos dias estaba mirando un código sencillito en Basic que se publicó hace tiempo en el CPCWiki, y me di cuenta de que programitas que representaran fractales en Dragon basicamente no hay.
Vaya, al final lo has publicado: ¡enhorabuena!

Pues para continuar con el tema os voy a subir otro programa de fractales, también para Dragón, que hice en Mayo; éste dibuja una fractal llamada "curva Dragón".
Está en ensamblador, ocupa 124 bytes y tarda casi dos segundos en pintarla; el código es aún mejorable, por si alguien quiere ponerse a ello.

También tengo una versión para 6309 / CoCo3 (más del doble de rápida) por si alguien la quiere para algo.
Un saludo.
- Adjuntos
-
- Fuentes y programa.zip
- Fuentes y programa
- (9.28 KiB) Descargado 447 veces
Volver a “Otros microordenadores”
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados