InDev Tester ZX: Probador de dispositivos de entrada para Spectrum/Timex

Moderador: Fundadores

Responder
pastbytes
Le gustan las llamas
Le gustan las llamas
Mensajes: 98
Registrado: 14 May 2016, 09:12
Ubicación: Patagonia Argentina
Been thanked: 56 times
Contactar:

InDev Tester ZX: Probador de dispositivos de entrada para Spectrum/Timex

Mensaje por pastbytes »

Despues de haber hecho este programa para Commodore 128, Commodore 64 y MSX, ahora llego el turno de hacer una version para Spectrum y Timex Sinclair 2068.
Esta version tiene una unica pantalla, a diferencia de los otros ports, pero se incluye el teclado del 48K, las teclas agregadas en los modelos +, distintos tipos de joystick (Sinclair, Kempston, Fuller, Cursor, y Timex), y el teclado numerico del +128, que por el momento no esta implementado en el programa.
Diseñe el programa para ahorrar memoria al maximo, para permitir que pudiera funcionar en Spectrum 16K, y a la vez para que funcionara el mismo ejecutable tanto en Spectrum como en Timex Sinclair 2068, que tiene una ROM y un mapa de memoria diferentes, aunque parcialmente compatibles. La compatibilidad con Timex reduce la memoria disponible en 3K, por lo que el programa tenia que ser muy simple para entrar en 16K.
Esta es una primera version para que se pruebe, yo solo tengo Spectrum 48K (uno de Sinclair y otro de Czerweny, este ultimo incluye 2 puertos Sinclair y tiene Kempston por medio de la IF1bis), y Timex Sinclair 2068. En el resto de los modelos solo lo probe por medio de emuladores.
Se puede descargar desde el sitio del proyecto: http://www.pastbytes.com/indevtester/
indevzx1.png
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
pastbytes
Le gustan las llamas
Le gustan las llamas
Mensajes: 98
Registrado: 14 May 2016, 09:12
Ubicación: Patagonia Argentina
Been thanked: 56 times
Contactar:

Re: InDev Tester ZX: Probador de dispositivos de entrada para Spectrum/Timex

Mensaje por pastbytes »

Avatar de Usuario
mad3001 !Atari
Demonio segundo orden
Demonio segundo orden
Mensajes: 1963
Registrado: 25 Nov 2015, 00:15
Ubicación: Mostoles(Madrid)
Has thanked: 92 times
Been thanked: 120 times

Re: InDev Tester ZX: Probador de dispositivos de entrada para Spectrum/Timex

Mensaje por mad3001 »

Tiene buena pinta, la cosa es que para los +2/+3 fabricados por amstrad la propia rom lleva un test, no es que sea una gran maravilla pero bueno...
Eso si el tuyo esta mucho más chulo y chequea más cosas, claro.... y encima vale hasta para 16k que más pedir (bueno por pedir....si puedes añadirle chequear los joystick MegaDrive para los ZX NEXT, simplemente es añadir lectura kempston de los bit 5 y 6 de los botones C, A -el B es el bit 4- y mostrarlo en algún hueco de la pantalla.
Y bueno, en formato ROM estaría bien para usarlo en Dandanator o un ROM cartridge...
Volviendo a los origenes... programa en assembler
pastbytes
Le gustan las llamas
Le gustan las llamas
Mensajes: 98
Registrado: 14 May 2016, 09:12
Ubicación: Patagonia Argentina
Been thanked: 56 times
Contactar:

Re: InDev Tester ZX: Probador de dispositivos de entrada para Spectrum/Timex

Mensaje por pastbytes »

mad3001 escribió: 06 Jul 2024, 12:01 Tiene buena pinta, la cosa es que para los +2/+3 fabricados por amstrad la propia rom lleva un test, no es que sea una gran maravilla pero bueno...
No sabia que tienen un test en rom, como se activa eso? Nunca tuve un Spectrum que no fuera el 48K.
Eso si el tuyo esta mucho más chulo y chequea más cosas, claro.... y encima vale hasta para 16k que más pedir (bueno por pedir....si puedes añadirle chequear los joystick MegaDrive para los ZX NEXT, simplemente es añadir lectura kempston de los bit 5 y 6 de los botones C, A -el B es el bit 4- y mostrarlo en algún hueco de la pantalla.
Se puede agregar esos dos botones en la proxima version.
Y bueno, en formato ROM estaría bien para usarlo en Dandanator o un ROM cartridge...
No conozco como funciona el dandanator, lei en la pagina que soporta tap, por eso ni me moleste en investigar sobre otros formatos soportados. Como seria en formato ROM? Reemplaza la ROM del equipo? Porque si es asi me quedo sin el codigo de impresion en pantalla, y sin las variables del sistema.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 6298
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1307 times
Been thanked: 3156 times
Contactar:

Re: InDev Tester ZX: Probador de dispositivos de entrada para Spectrum/Timex

Mensaje por cacharreo »

pastbytes escribió: 06 Jul 2024, 13:39No sabia que tienen un test en rom, como se activa eso? Nunca tuve un Spectrum que no fuera el 48K.
Del manual:
To invoke the Spectrum +3 diagnostic routines, first reset the machine while holding the BREAK key down. This will go into the test card display. Now hold down the QAZMLP keys for a few seconds unti the diagnostic title is displayed. Now follow the on screen prompts.
pastbytes escribió: 06 Jul 2024, 13:39Como seria en formato ROM? Reemplaza la ROM del equipo?
Se ensambla para el espacio de direcciones de la ROM con la idea de reemplazar la del Spectrum igual que hacen otras ROM de diagnóstico. Requiere ciertos ajustes pero lo más inmediato y que recomiendo es consultar el código publicado de otras ROM.
pastbytes escribió: 06 Jul 2024, 13:39Porque si es asi me quedo sin el codigo de impresion en pantalla, y sin las variables del sistema.
Lo ideal sería que el código disponga de funciones (rutinas que se decía en los 80) de impresión propias.
© cacharreo
Avatar de Usuario
mad3001 !Atari
Demonio segundo orden
Demonio segundo orden
Mensajes: 1963
Registrado: 25 Nov 2015, 00:15
Ubicación: Mostoles(Madrid)
Has thanked: 92 times
Been thanked: 120 times

Re: InDev Tester ZX: Probador de dispositivos de entrada para Spectrum/Timex

Mensaje por mad3001 »

Bueno, con dandanator se puede hacer modo ROM (dispones de 16Kb) pero de modo que "copias" hacia RAM todo lo necesario para ejecutarlo desde allí y entonces "mapeas" nuevamente la ROM del spectum (es una funcionalidad de dandanator, el cambio del espacio de ROM) y así disponer de las rutinas de la ROM original, eso si, requerirá "inicializar" diversas zonas en RAM como lo haría la ROM del 48K cuando arranca. Si simplemente ejecutases desde la dirección 0 de la rom 48K perderías el control para ejecutar tu propio código.

Ahora bien, si fuese un formato ROM "clásico" efectivamente necesitarías unas rutinas propias (y juego de caracteres propio) ya que "tu ROM" sustituye por completo la ROM de 16K del spectrum. Eso permitiría usarlo en Dandanator, cartucho ROM tipo ROMBOX o por ejemplo en un Interface II. Ahí te harías algo parecido a un "Shadow of the unicorn" :D

Lo más sencillo entonces es hacer tu código ejecutable a partir de la dirección 0, asegurarte de empezar con DI - IM 1 y a partir de ahí iría todo tu programa. Necesitarás, claro, una rutina sencillita de poner texto en pantalla e incluir además los 768 bytes (96 caracteres) del juego de caracteres.

Aquí te dejo un ejemplo de rutina sin usar ROM :
PRINT in Assembly Language
Aunque ahí usa el set de caracteres de la ROM, facilmente cambias el "origen" del charset y lo pones donde tengas el tuyo en tu ROM; si quieres puedes dejarlo en el mismo sitio que en la ROM original e incluso copiar sus 768 bytes a tu ROM.

Si te apetece hacer esta forma (o la del Dandanator) no tengo problema en echarte una mano.
Volviendo a los origenes... programa en assembler
Responder

Volver a “Sinclair”