Versión 0.1 beta
-> Descargar el Z88DK de aquí: http://www.bytemaniacos.com/ficheros/zxspectrum/z88dk10.zip
-> Descomprimir el Z88DK en la carpeta raíz de Windows. Debe quedar en c:\z88dk10
-> Descargar el fichero adjunto de este post y descomprimirlo donde os venga en gana (una carpeta en el escritorio, con las fotos ocultas de la vecina en tanga, etc).
El Kit está basado en el del curso C que estoy preparando:
http://www.bytemaniacos.com/ficheros/zxspectrum/
Básicamente consiste de dos ficheros a editar:
- juego.c, que es el que tendrá el código del juego
- sprites.c, que es el que tendrá los tiles y sprites del juego
En juego.c tenéis un ejemplo de código para meter la paleta, dentro de la carpeta utilszxuno está el BASINC con el que podéis generar una paleta (os crea el código BASIC a base de datas... que es la paleta).
Rutinas:
cls (color), donde color es el color que queremos poner de 0 a 16 (paleta ULA plus)
delay (pausa), hace una pausa en la ejecución (para que no se os vaya de velocidad)
escribe_paleta (índice, color), escribe en el valor de paleta índice el color de paleta que queráis definir
port_in (puerto), lee un puerto de e/s (ej, teclado)
port_out (puerto), escribe un puerto de e/s
wait_int, espera al retrazo vertical (muy útil para sincronizar el juego)
put_sprite_x8 (sprite, x, y), ¿hace falta explicar más? La posición X va de dos en dos pixels realmente. Los límites son x=60 e y=88.
Lo suyo es que ejecutéis el make.bat y probéis el ejemplo, es bastante ilustrativo.
ZX-Uno - kit de programación modo Radastaniano
- radastan
- Amiga 2500
- Mensajes: 4542
- Registrado: 11 Jun 2007, 19:29
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Sega Genesis/Megadrive
- Primera consola: TV Games/Pong Clone
- Ubicación: Córdoba
- Gracias dadas: 9 veces
- Gracias recibidas: 40 veces
- Contactar:
ZX-Uno - kit de programación modo Radastaniano
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝
- 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: ZX-Uno - kit de programación modo Radastaniano
¡Estupendo! Aún no he probado el ejemplo, pero vamos, que es todo un currazo, sobre todo teniendo en cuenta que no hace mucho que tienes un ZX-Uno y que hasta ahora no has podido probar mucho código que digamos.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- radastan
- Amiga 2500
- Mensajes: 4542
- Registrado: 11 Jun 2007, 19:29
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Sega Genesis/Megadrive
- Primera consola: TV Games/Pong Clone
- Ubicación: Córdoba
- Gracias dadas: 9 veces
- Gracias recibidas: 40 veces
- Contactar:
Re: ZX-Uno - kit de programación modo Radastaniano
mcleod_ideafix escribió:¡Estupendo! Aún no he probado el ejemplo, pero vamos, que es todo un currazo, sobre todo teniendo en cuenta que no hace mucho que tienes un ZX-Uno y que hasta ahora no has podido probar mucho código que digamos.
Mejor no te cuento como paso sprites de PC a código de ZX Uno...

Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝
- na_th_an
- Amiga 1200
- Mensajes: 1273
- Registrado: 10 Oct 2012, 11:17
- Sistema Favorito: (Otro)
- primer_sistema: Spectrum +2
- consola_favorita: Sony PlayStation 1
- Primera consola: Sega Master System
- Gracias dadas: 18 veces
- Gracias recibidas: 15 veces
Re: ZX-Uno - kit de programación modo Radastaniano
¿No te vale el conversor que te hice? ¿Necesita alguna adaptación?
http://www.mojontwins.com/mojoniaplus/v ... 979#p63979
http://www.mojontwins.com/mojoniaplus/v ... 979#p63979
- radastan
- Amiga 2500
- Mensajes: 4542
- Registrado: 11 Jun 2007, 19:29
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Sega Genesis/Megadrive
- Primera consola: TV Games/Pong Clone
- Ubicación: Córdoba
- Gracias dadas: 9 veces
- Gracias recibidas: 40 veces
- Contactar:
Re: ZX-Uno - kit de programación modo Radastaniano
na_th_an escribió:¿No te vale el conversor que te hice? ¿Necesita alguna adaptación?
http://www.mojontwins.com/mojoniaplus/v ... 979#p63979
Adaptar mi paleta a tus herramientas, sólo eso, es pura pereza. De esas cosas que uno es peeeeeeeerroooooo.

Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝
- na_th_an
- Amiga 1200
- Mensajes: 1273
- Registrado: 10 Oct 2012, 11:17
- Sistema Favorito: (Otro)
- primer_sistema: Spectrum +2
- consola_favorita: Sony PlayStation 1
- Primera consola: Sega Master System
- Gracias dadas: 18 veces
- Gracias recibidas: 15 veces
Re: ZX-Uno - kit de programación modo Radastaniano
Si mal no recuerdo, sólo tienes que sacar los valores RGB de cada color en hex
¡Si se tarda un minuto!

- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: ZX-Uno - kit de programación modo Radastaniano
Puedes agilizar el paso de parámetros a ASM mediante la diretiva CALLEE:
Código: Seleccionar todo
void __CALLEE__ put_sprite_x8 (unsigned char *posicion, unsigned int x, unsigned int y){
/*---------------------------------------------
RUTINA DE IMPRESION DE UN SPRITE 8x8 PIXELS
EN CUALQUIER POSICION DE BYTES (cada byte dos pixels horizontales)
ENTRADAS:
D será la posición del cursor vertical en pixels
E será la posición del cursor horizontal en parejas de pixels
HL es la posición de memoria donde tenemos el sprite
SALIDAS: se escribe en el mapa de pantalla
ADVERTENCIAS: no comprueba límites de pantalla
-----------------------------------------------*/
#asm
pop bc
pop hl
pop de
ld d, l
pop hl
push bc
ld a, d ; recuperamos el valor vertical
rrca
rrca ; rotamos para dejar su valor en múltiplos de 64 (linea, de dos en dos pixels)
and 192 ; borramos el resto de bits por si las moscas
or e ; sumamos el valor horizontal
ld e, a ; e preparado
ld a, d ; cargamos el valor vertical
rrca
rrca ; rotamos para quedarnos con los bits altos
and 63 ; borramos el resto de bits
or 64 ; nos posicionamos a partir de 16384 (16384=64+0 en dos bytes)
ld d, a ; d preparado, ya tenemos la posición en pantalla
ld b, 8 ; Indicamos que vamos a pintar 8 líneas
.draw ; dibujamos 8 pixels (4 bytes)
ld c, 4 ; Indicamos que vamos a pintar 4 pares de pixels
ldi
ldi
ldi
ldi
ld a, e
add a, 60 ; incrementamos una línea y retornamos los pixels dibujados
ld e, a
jr nc, sigue
inc d ; incrementamos D si sale acarrero al incrementar E en 64 bytes
.sigue
djnz draw
ret
#endasm
}
- radastan
- Amiga 2500
- Mensajes: 4542
- Registrado: 11 Jun 2007, 19:29
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Sega Genesis/Megadrive
- Primera consola: TV Games/Pong Clone
- Ubicación: Córdoba
- Gracias dadas: 9 veces
- Gracias recibidas: 40 veces
- Contactar:
Re: ZX-Uno - kit de programación modo Radastaniano
Tomo nota, cambiaré todas las rutinas de esta forma tanto en este kit como en los otros con los que estoy trabajando.
Cuando pueda modificaré la rutina de sprites con soporte de máscara, que no doy a basto.
Cuando pueda modificaré la rutina de sprites con soporte de máscara, que no doy a basto.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝
- Haplo
- MSX Turbo R
- Mensajes: 278
- Registrado: 14 Abr 2014, 22:24
- Sistema Favorito: PC
- primer_sistema: Spectrum +2
- consola_favorita: Sony PlayStation 1
- Primera consola: Nintendo NES/Clónica
- Ubicación: Ciudad Real
- Gracias dadas: 33 veces
- Gracias recibidas: 5 veces
Re: ZX-Uno - kit de programación modo Radastaniano
Radastán, aprovechando que estoy trasteando con el boriel ZX Basic (me resulta más sencillo que el z88dk), me he liado a portar tu kit a este entorno y así de paso practico
De momento he conseguido que me compile sin errores y que no se resetee el zxuno
, pero la imagen que muestra no es correcta, me sale un truño multicolor ...
Esto es comprensible dado mis justitos conocimientos del zxbasic y los escasos del C
Esta tarde seguiré peleándome, porque seguro que es una chorrada.

De momento he conseguido que me compile sin errores y que no se resetee el zxuno

Esto es comprensible dado mis justitos conocimientos del zxbasic y los escasos del C
](./images/smilies/eusa_wall.gif)
Esta tarde seguiré peleándome, porque seguro que es una chorrada.
- 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: ZX-Uno - kit de programación modo Radastaniano
Haplo escribió:De momento he conseguido que me compile sin errores y que no se resetee el zxuno, pero la imagen que muestra no es correcta, me sale un truño multicolor ...
¿Has iniciado el modo Radastaniano? Es decir, ¿has incorporado en ZX Boriel el equivalente a este código?
Código: Seleccionar todo
int i;
// Inicializamos el modo Radastaniano
port_out (48955,64);
port_out (65339,3);
// Definimos la paleta
for (i=0;i<16;++i)
{
escribe_paleta (i,paleta[i]);
}
cls (3);
Si lo has hecho y te sale un "truño", pon una foto de lo que se ve en pantalla, a ver si identifico en qué modo de pantalla estás.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 14 invitados