SDK completo para Spectrum

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Avatar de Usuario
Rinconete
Jack The Nipper
Mensajes: 193
Registrado: Mar Oct 09, 2007 7:32 pm
Ubicación: Valladolid

Re: SDK completo para Spectrum

Mensaje por Rinconete » Mié Nov 14, 2007 10:45 am

TrueVideo escribió:
Bubu escribió:con el que se debería dibujar una rayita arriba a la izquierda. Peeeero se dibuja una vez termina la debugación. Mientras tanto el emulador (tanto emuZWin como zxSpin) parece estar en pausa. ¿No podría haber una manera para que al ejecutarse la instrucción LD (HL), 255 ahí mismo se viera ya la rayita?


Al ejecutar paso a paso el emulador permanece en pausa, pero también lo hace el refresco de pantalla. Por eso los cambios que haces por código no se visualizan en el acto. Para verlos deberías esperar a un refresco de cuadro completo. Si el debugger no tiene esa opción prueba con dos HALT después de habilitar las interrupciones (han de ser dos, con uno no vale).

J


Una pregunta tonta, entiendo que la cosa de los dos HALT sería: un primer HALT para esperar hasta la generación de la interrupción y por tanto inicio de la lectura de la memoria de video por la ULA, y un segundo HALT para esperar a la siguiente interrupción, de modo que el refresco de la pantalla se habría producido entre el primer halt y el segundo ¿es así?

Kak
rst 0
Mensajes: 25
Registrado: Mié May 09, 2007 10:32 am

Re: SDK completo para Spectrum

Mensaje por Kak » Mié Nov 14, 2007 10:54 am

es un poco offtopic, pero hace unos dias salio un sdk para psp que creo que es una gran idea:

http://zx81.zx81.free.fr/serendipity/in ... Users.html

se trata de una imagen de un linux con todo instalado, listo para ser ejecutado como una maquina virtual para virtualBox http://www.virtualbox.org/

La cosa esta en que te bajas dicha imagen, instalas el virtualbox y ya tienes un linux listo para compilar y hacer cosillas para PSP, con todas las librerias instaladas, herramientas varias, las variables de entorno bien definidas, etc... Es "llegar" y hacer un hello world en 30 segundos sin tener que preocuparte donde apunta cada cosa.
Ya se que instalar las herramientas para programar spectrum son mucho mas faciles que las de psp (solo para instalar el cygwin te estas horas, y nunca sale bien a la primera), pero seria un puntazo tener algun sistema alternativo para bajarte y poder hacer cosillas des del minuto 0 (yo por ejemplo, cada vez que tengo que encontrar la SPlib esa me las veo canutas porque no se nunca donde irla a buscar, encuentras versiones viejas, ...)

El handicap es que las imagenes estas suelen ocupar muchisimo :( (y si vienen con las X para poner emuladores que no sean en modo consola, ni te digo).

O al menos quizas tendriamos que montar un tutorial sobre como instalar todo y que opciones hay, con links completos y actualizados, y meterlo como sticky en el foro ( la verdad es que no recuerdo ningun tutorial sobre como instalar todo desde 0, tanto en linux como en windows, y es algo que si queremos ver nuevos juegos seria importante hacer, porque que te pique el gusanillo de hacer algo y pasarte 5 horas buscando programas tira mucho de espaldas...)

Avatar de Usuario
TrueVideo
Jack The Nipper
Mensajes: 195
Registrado: Mié May 23, 2007 8:34 am
Ubicación: BCN
Contactar:

Re: SDK completo para Spectrum

Mensaje por TrueVideo » Mié Nov 14, 2007 11:38 am

Rinconete escribió:Una pregunta tonta, entiendo que la cosa de los dos HALT sería: un primer HALT para esperar hasta la generación de la interrupción y por tanto inicio de la lectura de la memoria de video por la ULA, y un segundo HALT para esperar a la siguiente interrupción, de modo que el refresco de la pantalla se habría producido entre el primer halt y el segundo ¿es así?


Casi. Al hacer HALT ponemos en espera al Z80 hasta el siguiente cuadro/interrupción. Durante esa espera el emulador refresca la zona de pantalla a partir de la posición actual del haz. Si en el momento de la ejecución de tu código el haz de electrones iba por la mitad de la pantalla, un único HALT sólo refrescaría la mitad inferior. Si resulta que el área de pantalla que se ha de refrescar está por encima del haz entonces no habrá tal refresco. Como en principio no podemos saber en qué momento del cuadro se va a ejecutar el código necesitamos hacer dos HALTs para garantizar que se va a refrescar la pantalla completa en todas las situaciones.

Por lo tanto el refresco de pantalla no se produce entre el primer y el segundo HALT, sino durante el primero y durante el segundo.

J

Bubu
Freddy Hardest
Mensajes: 544
Registrado: Mié Oct 31, 2007 12:15 am

Re: SDK completo para Spectrum

Mensaje por Bubu » Mié Nov 14, 2007 4:08 pm

OK, entonces me queda por probar :

- pASMo como ensamblador
- Spectaculator como depurador
- sevenUpo como herramienta gráfica.

Y por cierto, el gran olvidado de siempre: EL SONIDO. ¿Hay algo (herramienta) para generar sonidos en Spectrum e incluirlo en un juego propio?

Avatar de Usuario
Rinconete
Jack The Nipper
Mensajes: 193
Registrado: Mar Oct 09, 2007 7:32 pm
Ubicación: Valladolid

Re: SDK completo para Spectrum

Mensaje por Rinconete » Mié Nov 14, 2007 4:34 pm

TrueVideo escribió:Casi. Al hacer HALT ponemos en espera al Z80 hasta el siguiente cuadro/interrupción. Durante esa espera el emulador refresca la zona de pantalla a partir de la posición actual del haz. Si en el momento de la ejecución de tu código el haz de electrones iba por la mitad de la pantalla, un único HALT sólo refrescaría la mitad inferior. Si resulta que el área de pantalla que se ha de refrescar está por encima del haz entonces no habrá tal refresco. Como en principio no podemos saber en qué momento del cuadro se va a ejecutar el código necesitamos hacer dos HALTs para garantizar que se va a refrescar la pantalla completa en todas las situaciones.

Por lo tanto el refresco de pantalla no se produce entre el primer y el segundo HALT, sino durante el primero y durante el segundo.
J


Ya veo; si he entendido bien durante el primer HALT se refresca una parte de la pantalla, dependiendo de la posición del haz de electrones, como indicas, hasta completar la pantalla, se produce el retrazo vertical y se genera la interrupción. Entonces, durante el segundo HALT, el haz parte desde la esquina superior izquierda y recorre la pantalla hasta la siguiente interrupción, momento en el que se produce la segunda interrupción. Esto quiere decir que durante este segundo HALT se lleva a cabo un refresco completo de la pantalla.


EDITO: me corrijo en lo dicho sobre el momento de generación de la interrupción. Acabo de leer en http://www.nfluid.com/specDesign/interrupts.shtml que la interrupción se produce durante un retrazo vertical, no cuando el haz se encuentra en la esquina superior izquierda.

Avatar de Usuario
TrueVideo
Jack The Nipper
Mensajes: 195
Registrado: Mié May 23, 2007 8:34 am
Ubicación: BCN
Contactar:

Re: SDK completo para Spectrum

Mensaje por TrueVideo » Mié Nov 14, 2007 5:15 pm

Rinconete escribió:Esto quiere decir que durante este segundo HALT se lleva a cabo un refresco completo de la pantalla.


Eso es, ahora sí :wink:

Bubu
Freddy Hardest
Mensajes: 544
Registrado: Mié Oct 31, 2007 12:15 am

Re: SDK completo para Spectrum

Mensaje por Bubu » Mié Nov 14, 2007 8:14 pm

Ya he catado el pASMo como compilador y el Spectaculator como debugador, y son muy buenos. Lo único que tengo que ver es cómo automatizar un poco el proceso, ya que ahora tengo que:

- escribir en el Notepad un pograma en ensamblador
- grabo ese texto
- cambio a la ventana de MSDOS
- ejecuto el pASMo. Éste me genera una salida .BIN
- cambio a la ventana del emulador
- menú archivo, abrir, y elijo ese fichero .BIN
- le digo la dirección de memoria donde ha de cargar
- menú Herramientas, Debugger
- Busco la dirección de comienzo
- Pongo un punto de ruptura
- Pulso Escape para pasar al BASIC
- Escribo randomize usr + la dirección

Y todo esto cada vez que añado p.ej. una simple línea al fichero que contiene mi código ensamblador...

Además, estoy pensando en utilizar un editor de textos como p.ej. el Crimsom editor, para que me ilumine o cambie de color los mnemotécnicos y demás historias, ya que he utilizado el Notepad como editor para el pASMo, y en pogramas de 5 líneas no pasa ná, pero cuando tenga un pograma con 1.000 me las voy a ver jodidas.

rockersuke
Jack The Nipper
Mensajes: 105
Registrado: Vie May 11, 2007 1:08 am

Re: SDK completo para Spectrum

Mensaje por rockersuke » Mié Nov 14, 2007 9:11 pm

Y todo esto cada vez que añado p.ej. una simple línea al fichero que contiene mi código ensamblador...


¡La vida del programador no es fácil! ¿eh? :-)

De todos modos piensa que Pasmo, o eso creo recordar, puede generar imágenes de cinta, y por otro lado, puedes usar en vez del notapad cualquier otro editor de texto orientado a programadores que puedas configurar para que él mismo llame al compilador (pasmo) por su cuenta, reduciendo con todo ello sustancialmente el nº de pasos que citas (tu mismo hablas del Crimson y, de hecho, hay decenas de ellos, la mayoría gratuitos o de código libre).

¡Ya verás como al final no es tan pesado como te parece ahora!

Avatar de Usuario
Rinconete
Jack The Nipper
Mensajes: 193
Registrado: Mar Oct 09, 2007 7:32 pm
Ubicación: Valladolid

Re: SDK completo para Spectrum

Mensaje por Rinconete » Mié Nov 14, 2007 9:43 pm

Puedes hacer un bat para la compilación que llame a primero a pasmo y luego a bin2tap. Una vez generado el tap si pinchas 2 veces te abre directamente el emulador y te ejecuta tu programilla.

Benway
Manic Miner
Mensajes: 215
Registrado: Lun May 07, 2007 7:43 pm
Ubicación: Madrid
Contactar:

Re: SDK completo para Spectrum

Mensaje por Benway » Mié Nov 14, 2007 9:57 pm

Yo uso ConTEXT como IDE. Tiene una plantilla de colores para el asm del z80, y puedes configurar las teclas de función: Por ejemplo, yo tengo F9 para ejecutar un bat que compila y ejecuta el emulador con el .tap resultante; F10 para compilar solo; y F11 para ejecutar el emulador con el .tap solo (sin compilar).

A mí me parece el editor "definitivo" para usar con pasmo ;)

Añado: Te pongo el .BAT del proyecto que estoy haciendo ahora mismo ;):

Código: Seleccionar todo

@echo off
copy iLogicAll.tap iLogicAll.bak
c:\pasmo\pasmo --tapbas iLogicAll.asm iLogicAll.tap iLogicAll.sym
"C:\Archivos de programa\spectaculator.com\Spectaculator 6\Spectaculator.exe" iLogicall.tap
Un saludo.
Imagen - Imagen - Imagen

Bubu
Freddy Hardest
Mensajes: 544
Registrado: Mié Oct 31, 2007 12:15 am

Re: SDK completo para Spectrum

Mensaje por Bubu » Mié Nov 14, 2007 11:18 pm

Tremendo. No sabía que se podía ejecutar Spectaculator por línea de comandos para cargar una ram. ¡¡ A catarlo !! Comentaré resultados, y haré un minituto agradeciendo a todos los participantes, claro. Lo que sí me queda pendiente es el tema del sonido. Me imagino que poquita cosa habrá para generar música y poder incorporarla a un juego, ¿no? Sería algo así como un tracker y luego un player que funcione en el juego mediante interrupciones IM 2, aunque no lo tengo muy claro...
¿Conocéis alguna herramienta para música en el Spectrum? (no para el chip AY, sino para un beeper normal y corrién)

Avatar de Usuario
miguel
Manic Miner
Mensajes: 293
Registrado: Mar Abr 17, 2007 12:27 am
Ubicación: Parla - Madrid
Contactar:

Re: SDK completo para Spectrum

Mensaje por miguel » Jue Nov 15, 2007 12:05 am

TrueVideo escribió:En cualquier caso no descartes tan pronto SevenuP: llegará el momento en que querrás convertir tus gráficos a un formato manejable por código y en ese aspecto SevenuP es valiosísimo.


Sin duda alguna. Nosotros utilizamos SevenuP más que para dibujar (creo que Zyloj usa PSP, que me rectifique si no es así) para volcar a código el gráfico y es muy útil. En cuanto a las combinaciones de teclas y las formas de trabajar con él, pues te acabas acostumbrando.

Saludos.
Mi colección retro.
10 PRINT "TODOS SOMOS SROMERO, MENOS UNO QUE SE CREE QUE SÍ"
20 GO TO 10

Bubu
Freddy Hardest
Mensajes: 544
Registrado: Mié Oct 31, 2007 12:15 am

Re: SDK completo para Spectrum

Mensaje por Bubu » Jue Nov 15, 2007 12:31 am

Pues sí que sí. Acabo de catar el sevenuP y es maravilloso para Sprites. Lo que sí es verdad es que el ZX-Paintbrush no lo veo suplementario, sino como complementario. Yo usaría el sevenuP para sprites, y el ZX-Paintbrush para fondos de juego y pantallas de carga, es decir, para imágenes grandes y estáticas.

Así que ya lo tengo CASI todo:

- Ensamblador : pASMo
- Editor : conTEXT
- Depurador / emulador : Spectaculator
- Pantallas : ZX-Paintbrush
- Sprites : sevenuP
- Sonido : ?????

Bubu
Freddy Hardest
Mensajes: 544
Registrado: Mié Oct 31, 2007 12:15 am

Re: SDK completo para Spectrum

Mensaje por Bubu » Jue Nov 15, 2007 1:06 am

Pues tiene muy buena pinta, falvarez. En pocos segundos me he creado una música polifónica (2 canales), en concreto la música del Frogger, jiji. Ahora a ver si descubro cómo se integra en un pograma ensamblador. Muchas gracias.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 11 invitados