Kit Z88DK Radastan para ZXUno - 0.3c

Software para o relacionado con el core ZX Spectrum / Software for or related to the ZX Spectrum core
Avatar de Usuario
Radastan
Mensajes: 389
Registrado: 05 Oct 2015, 14:39

Kit Z88DK Radastan para ZXUno - 0.3c

Mensaje por Radastan » 24 Ago 2016, 09:14

Buenas a todos. Actualizo mi kit a la versión 0.3c

Cambios:
- Ahora el kit incluye las versiones para Z88DK10 y la última disponible
- Se modifica la entrada al modo radastaniano para cumplir las últimas especificaciones del equipo ZXUno

No olvidéis usar el último firmware en vuestro ZXUno o la última versión del emulador, en caso contrario no veréis nada al entrar en modo Radastaniano.
ZX_Uno_kit_03c.zip
(553.98 KiB) Descargado 894 veces
Si, estoy trabajando en más novedades, pero esto era urgente.

_________________________________

LICENCIA: Puedes hacer con el código lo que te plazca: modificarlo, añadirle cosas, imprimirlo y empapelar tu casa con líneas de código, escribir un libro... basta que menciones en las instrucciones, una nota, o donde sea, que el código original es de Radastan. Nada más. Si le sacas pasta a tu juego, estupendísimo, todo para ti. Si me ves algún día y me quieres invitar a una cerveza mejor todavía, pero no es obligatorio ni te lo voy a exigir. Llamadlo GPL, OPEN, como os venga en gana, yo simplemente lo llamo "libre". Sin atadura y sin nada.
Última edición por Radastan el 24 Ago 2016, 11:15, editado 1 vez en total.

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Kit Z88DK Radastan para ZXUno - 0.3c

Mensaje por Uto » 24 Ago 2016, 11:09

Te lo he comentado por otro lado, pero el kit carece de licencia, por lo cual legalmente no lo podemos usar. Se que es una tontería porque para que leches lo haces si no es para que se use, pero legalmente hablando no se puede incluir en ningún juego. ¿Por que no le pones una LGPL o una MIT?

Por otro lado, hay una cosa que se me hace rara, y es que todas las funciones del kit están en ingles menos una (escribe_paleta). ¿Alguna razón para no llamarla set_palette o algo así?

También me gustaría añadir un enlace al kit en el manual, pero temo que al estar en desarrollo la URL es cambiante, y eso lo dificulta un poco. ¿Tienes planes de subir la librería a Github o similar?

Avatar de Usuario
Radastan
Mensajes: 389
Registrado: 05 Oct 2015, 14:39

Re: Kit Z88DK Radastan para ZXUno - 0.3c

Mensaje por Radastan » 24 Ago 2016, 11:16

Cierto, ya he añadido la licencia en el primer post y en futuras entregas la misma descripción irá en el fichero de texto.

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Kit Z88DK Radastan para ZXUno - 0.3c

Mensaje por Uto » 24 Ago 2016, 11:24

Radastan escribió:Cierto, ya he añadido la licencia en el primer post y en futuras entregas la misma descripción irá en el fichero de texto.
Perfecto :-)

Avatar de Usuario
Hark0
Mensajes: 683
Registrado: 27 Sep 2015, 00:31
Ubicación: Cornellà de Llobregat - BCN
Contactar:

Re: Kit Z88DK Radastan para ZXUno - 0.3c

Mensaje por Hark0 » 24 Ago 2016, 14:00

Pues como la del ZX-UNO.... creo que es GPL....

Cuando tenga un weco actualizo la web, gracias Radastan.

;)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

Avatar de Usuario
Radastan
Mensajes: 389
Registrado: 05 Oct 2015, 14:39

Re: Kit Z88DK Radastan para ZXUno - 0.3c

Mensaje por Radastan » 24 Ago 2016, 14:16

Por cierto, ya tengo funcionando la rutina de scroll, pero tengo que hacer la de impresión parcial de sprites para sacarle el 100% de partido (y que no se vea basura en un lateral). Os dejo una mini demo.
juego.zip
(1.65 KiB) Descargado 285 veces
PD: está con tropecientos retardos, que si no va tan rápido que no da tiempo a verlo (y no estoy usando la CPU en modo turbo). :mrgreen:

Avatar de Usuario
Hark0
Mensajes: 683
Registrado: 27 Sep 2015, 00:31
Ubicación: Cornellà de Llobregat - BCN
Contactar:

Re: Kit Z88DK Radastan para ZXUno - 0.3c

Mensaje por Hark0 » 25 Ago 2016, 09:40

Actualizada web:

http://zxuno.speccy.org/maquina.shtml#software

Si no veis el cambio... F5!!!

;)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

Alcoholics Anonymous
Mensajes: 10
Registrado: 14 Nov 2016, 04:53

Re: Kit Z88DK Radastan para ZXUno - 0.3c

Mensaje por Alcoholics Anonymous » 14 Nov 2016, 05:29

Perdón por la traducción automática. Dejé el texto original en inglés al final en caso de que la traducción fuera demasiado pobre.

Hola,

Tuve a alguien preguntando sobre el uso del kit con z88dk. Hubo un problema menor en make.bat que estaba estableciendo ZCCCFG y PATH para apuntar en ubicaciones absolutas en disco. Esto sólo funcionará si z88dk está instalado en el mismo lugar. Una instalación adecuada de z88dk (http://www.z88dk.org/wiki/doku.php?id=t ... stallation) hace que esas variables formen parte del entorno, por lo que no es necesario establecerlas explícitamente. Basta con eliminar las líneas de make.bat se asegurará de que el archivo por lotes funciona para todos los usuarios (de Windows).

También me di cuenta de que el kit sigue utilizando el "viejo" z88dk. La forma en que el código y los datos se define en inline-asm impide la asignación de sección flexible (importante para los programas de conmutación bancaria) e impide que sdcc se utilice como compilador. He actualizado el kit para usar el "nuevo" z88dk aquí: https://drive.google.com/file/d/0B6XhJJ ... sp=sharing No estoy seguro si cometí algún error al hacer que así lo necesitará Algunas pruebas.

Para construir el kit:

1. cd zxunokit
2. Ejecute "build.bat" para windows o "./build.sh" para linux. Las bibliotecas se construirán para sccz80 y sdcc y se copiarán a las ubicaciones correctas dentro de z88dk.

El directorio de ejemplo contiene el original "juego.c" modificado un poco para usar la nueva forma de la biblioteca. Puede compilar desde ventanas ejecutando "build.bat" en el directorio de ejemplo. El ejemplo de construcción es usar sdcc para compilar sólo para mostrar cómo se hace. Corrí el archivo tap resultante, pero no puedo decir si está funcionando (no tengo el emulador instalado todavía), pero el programa funciona correctamente hasta el final. La compilación utiliza un archivo de pragma "zpragma.inc" que contiene la configuración de compilación separada del código fuente y usa startup = 31 para obtener un crt que no incluye stdin / stdout / stderr.

Lo que ha cambiado es que ahora hay un único archivo de encabezado "zxunokit.h" que debe estar incluido y presente en el directorio del proyecto. Todo el código y los datos se han sacado de los archivos de cabecera (no se supone que los archivos de cabecera contienen código y datos en C) y se han colocado en la biblioteca zxunokit que se copió en el directorio de la biblioteca de z88dk. En forma de biblioteca, el vinculador sólo adjuntará código que el programa realmente utilice. Para acceder a las funciones de la biblioteca zxunokit, debe agregarse "-lzxunokit" a la línea de compilación.

Además de que todas las funciones se han cambiado para aprovechar la vinculación de callee y fastcall, así como preserves_regs () siempre que sea posible.

Algunas funciones en zxunokit eran duplicados de funciones ya disponibles en la biblioteca z88dk:

* Delay () ha sido redefinido en términos de z80_delay_ms (). El retardo será diferente - la función z80_delay_ms () es un retardo exacto medido en milisegundos.
* Escribe_paleta () se ha cambiado a instrucciones de i / o en línea.
* Port_out () ha sido redefinido en términos de intrinsic_out16 (). Esta función indica instrucciones para evitar cualquier sobrecarga de llamadas. La única advertencia es que los parámetros deben evaluar las constantes en tiempo de compilación.
* Port_in () ha sido redefinido en términos de instrinsic_in16 (). Lo mismo que arriba.
* Wait_int () ha sido redefinido en términos de intrinsic_halt (). Esta función en línea una "parada" sin la llamada overhead y sin afectar la optimización.
* Sonido_andar () ha sido cambiado para utilizar la función de biblioteca z88dk asm_bit_click () para que las escrituras no se hagan directamente al puerto $ fe. Z88dk gestiona ese puerto para que el audio no cambie el color del borde.

Siéntase libre de realizar cambios si desea adoptar esta versión de la biblioteca de alguna forma.



[spoiler]
Hello,

I had someone asking about using the kit with z88dk. There was a minor issue in make.bat that was setting ZCCCFG and PATH to point at absolute locations on disk. This will only work if z88dk is installed in the same place. A proper install of z88dk ( http://www.z88dk.org/wiki/doku.php?id=t ... stallation ) makes those variables part of the environment so that it is unnecessary to set them explicitly. Simply removing those lines from make.bat will ensure the batch file works for every (windows) user.

I also noticed that the kit is still using the "old" z88dk. The way that code and data is defined in inlined-asm prevents flexible section assignment (important for bankswitched programs) and prevents sdcc from being used as compiler. I updated the kit to use the "new" z88dk here: https://drive.google.com/file/d/0B6XhJJ ... sp=sharing I am not sure if I made any mistakes while making that so it will need some testing.

To build the kit:

1. cd zxunokit
2. Run "build.bat" for windows or "./build.sh" for linux. Libraries will be built for sccz80 and sdcc and will be copied to the correct locations inside z88dk.

The example directory contains the original "juego.c" modified a little bit to use the new form of the library. You can compile from windows by running "build.bat" from the example directory. The example build is using sdcc to compile just to show how it is done. I ran the resulting tap file but I can't tell if it's working (I don't have the emulator installed yet) but the program does properly run to the end. The compile uses a pragma file "zpragma.inc" that contains compile-time configuration separate from the source code and uses startup=31 to get a crt that does not include stdin/stdout/stderr.

What's changed is there is now a single header file "zxunokit.h" that must be included and present in the project directory. All code and data has been moved out of the header files (header files are not supposed to hold code & data in C) and have been placed in the zxunokit library that was copied into z88dk's library directory. In library form, the linker will only attach code that the program actually uses. To access functions in the zxunokit library, "-lzxunokit" must be added to the compile line.

In addition to that all functions have been changed to take advantage of callee and fastcall linkage as well as preserves_regs() where possible.

Some functions in zxunokit were duplicates of functions already available in the z88dk library:

* delay() has been redefined in terms of z80_delay_ms(). The delay will be different -- the z80_delay_ms() function is an exact delay measured in milliseconds.
* escribe_paleta() has been changed to inline i/o instructions.
* port_out() has been redefined in terms of intrinsic_out16(). This function inlines out instructions to avoid any call overhead. The one caveat is that the parameters must evaluate to constants at compile time.
* port_in() has been redefined in terms of instrinsic_in16(). Same as above.
* wait_int() has been redefined in terms of intrinsic_halt(). This function inlines a "halt" without call overhead and without affecting optimization.
* sonido_andar() has been changed to use z88dk library function asm_bit_click() so that writes are not made directly to port $fe. z88dk manages that port so that audio will not change the border colour.

Feel free to make any changes if you'd like to adopt this version of the library in some form.
[/spoiler]

Avatar de Usuario
Hark0
Mensajes: 683
Registrado: 27 Sep 2015, 00:31
Ubicación: Cornellà de Llobregat - BCN
Contactar:

Re: Kit Z88DK Radastan para ZXUno - 0.3c

Mensaje por Hark0 » 14 Nov 2016, 13:25

Lo descargo y le echo un ojo... a ver si tengo dos minutos... Gracias!!!

Tu idea es similar a lo que yo estoy montando.... y me consta que @radastan también... ;)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

Avatar de Usuario
Radastan
Mensajes: 389
Registrado: 05 Oct 2015, 14:39

Re: Kit Z88DK Radastan para ZXUno - 0.3c

Mensaje por Radastan » 15 Nov 2016, 23:05

La idea de no usar ninguna librería de Z88DK no era por gusto, era por independizar el kit del compilador C que se escogiera con sólo hacer unos cambios menores. Hay dos versiones del kit, uno para la antigua versión de z88DK y otra para la nueva. Eso si, en ambas se requiere Z88DK de froma absoluta... para no tener que instalarlo realmente, basta descomprimir Z88DK en c:\z88dk10 y punto (era por facilitar la vida a la gente).

Agradezco las optimizaciones y las mejoras, a ver si puedo centrarme en mejorar las rutinas (sobre todo las de sprites transparentes) y que trabajen con la pantalla principal o la shadow como una opción más.

Responder