ZX-80 - Super Programs

dancresp
Mensajes: 5249
Registrado: 13 Nov 2010 02:08
Agradecido : 89 veces
Agradecimiento recibido: 184 veces

ZX-80 - Super Programs

Mensajepor dancresp » 29 Oct 2018 23:48

En unos días hará un año que wilco2008 consiguió hacer funcionar un clón de Sinclair ZX-80 que compré por internet, y al que gracias a una caja de impresora 3D ha quedado casi como el equipo original, pero nuevo.

Imagen

Es un equipo del que no conozco ningún juego comercial. Ignoro si existe algo, pero si buscas por google no aparece nada de aquellos tiempos.
Es una lástima porque acabas teniendo el equipo, pero nada con que alimentarlo.

Con ganas de programar alguna cosilla con él, me descargué e imprimí el manual, y me di cuenta de lo simple que es su BASIC.
Claro, una ROM de 4 KB no da para mucho, aunque es más útil que el BASIC de 4 KB que lleva el Apple-1.

Aparentemente parece algo trivial adaptar los programas del ZX-81 al ZX-80, pero nada más lejos de la realidad.
Es mucho más complicado de lo que parece.

Para empezar, el ZX-80...
* Mientras procesa no muestra nada en pantalla. Olvídate de juegos de acción. Es como un ZX-81 en modo "FAST" perpetuo.
* Solo muestra el contenido de la pantalla cuando espera que llenes un INPUT. No existe el INKEY$ ni el PAUSE, por ejemplo.
* Tiene muchos menos comandos que el ZX-81.
* Solo trabaja con enteros de 2 bytes y solo puedes hacer las 4 operaciones matemáticas básicas: + - * /
* No tiene el comando "AT", con lo que no puedes imprimir libremente en la pantalla. Se debe redibujar entera.
* A diferencia del ZX-81 que tiene el modo "Graphics" (Shift+9). No puedes entrar caracteres en vídeo inverso desde el teclado. Se ha de hacer por programación.
* El tratamiento de cadenas se reduce al comando "TL$" que devuelve el primer carácter de una cadena, y lo quita de la cadena. No puedes consultar un carácter de una posición cualquiera de una cadena, hacer matrices, borrar un trozo, etc. Por no poder, no puedes ni concatenar caracteres ni saber su longitud.

Con este panorama, cuesta ver que y como puedes hacer cosas con él.

He desarrollado muchos programas para el ZX-81 con 1 KB, y descartados los juegos de acción o que necesitan mucho tratamiento de cadenas, me he centrado en los juegos tipo puzzle para ver como adaptarlos, y a base de ciertas técnicas centradas sobretodo en usar líneas REM como contenedores de cadenas, he podido adaptar 5 juegos, por ahora, y estoy desarrollando uno nuevo.

Porque con todas sus pegas, el ZX-80 tiene una cosa mejor que el ZX-81, y es que le saca mucho más rendimiento a su mísero KB. Su zona de variables del sistema, entre otras es más pequeña, cosa que me ha permitido mejorar las versiones del ZX-81, pudiendo indicar el formato del INPUT y validar la entrada, entre otras cosas.

Y la verdad es que he quedado tan satisfecho del resultado que no pienso publicar los juegos, por ahora, en ningún web. -no

He pedido presupuesto a una empresa de Barcelona y hacer una tirada de 50 cintas me sale por unos 240€, con su cinta, etiqueta, caja y caratula.
Así que en breve publicaré un post para que la gente que desee una copia me la pueda pedir. Será una edición limitada y numerada.
Según mis primeros cálculos, cinta + gastos de envío saldrá por unos 6€ aprox. No ganaré un duro, pero el gustazo no me lo quita nadie.

Dejo pantallazos, en fósforo verde de 5 de los 6 juegos que incluirá, para el equipo con 1 KB: -shock

1) Sudoku
2) Minefield
3) Solitaire
4) Rush Hour
5) Lights Out

El sexto juego, muy especial, está todavía en desarrollo...

DSC_0164.jpg
DSC_0164.jpg (130.16 KiB) Visto 476 veces

DSC_0157.jpg
DSC_0157.jpg (113.16 KiB) Visto 476 veces

DSC_0160.jpg
DSC_0160.jpg (144.22 KiB) Visto 476 veces

DSC_0165.jpg
DSC_0165.jpg (132.82 KiB) Visto 476 veces

DSC_0153.jpg
DSC_0153.jpg (132.24 KiB) Visto 476 veces


Y partes de código, muy commodorianos...

DSC_0162.jpg
DSC_0162.jpg (181.48 KiB) Visto 476 veces

DSC_0167.jpg
DSC_0167.jpg (177.79 KiB) Visto 476 veces


Hasta pronto

Avatar de Usuario
kikems
Mensajes: 2638
Registrado: 30 May 2013 19:23
Agradecido : 617 veces
Agradecimiento recibido: 913 veces

Re: ZX-80 - Super Games

Mensajepor kikems » 30 Oct 2018 00:23

Felicidades, se ve estupendo.

Avatar de Usuario
wilco2009
Mensajes: 1810
Registrado: 07 Ene 2013 16:48
Ubicación: Valencia
Agradecido : 80 veces
Agradecimiento recibido: 153 veces

Re: ZX-80 - Super Games

Mensajepor wilco2009 » 30 Oct 2018 05:46

Como mola!, Me apunto. :)
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."

Douglas Adams. Guía de autoestopista galáctico.

Avatar de Usuario
web8bits
Mensajes: 1004
Registrado: 31 Oct 2010 10:34
Ubicación: Vigo
Agradecido : 92 veces
Agradecimiento recibido: 71 veces
Contactar:

Re: ZX-80 - Super Games

Mensajepor web8bits » 30 Oct 2018 09:47

Impresionante, sinceramente, me parece "magia" hacer algún juego para el ZX80. Me apunto a esa cinta.

Un saludo

garillete
Mensajes: 508
Registrado: 30 Oct 2010 20:58
Agradecido : 11 veces
Agradecimiento recibido: 30 veces

Re: ZX-80 - Super Games

Mensajepor garillete » 30 Oct 2018 10:01

Yo me apunto....

BlackHole
Mensajes: 903
Registrado: 03 Ago 2011 23:07
Ubicación: Aluche, Madrid
Agradecido : 5 veces
Agradecimiento recibido: 116 veces

Re: ZX-80 - Super Games

Mensajepor BlackHole » 30 Oct 2018 11:53

Me pregunto si con tan poca memoria es más fácil hacer un programa en código máquina, o si es justo al revés: por tener tan poca memoria ahorras trabajando en BASIC porque un byte de una palabra clave haría más cosas al ser interpretada por su ROM. En un VIC20 está claro que gana el CM, pero teniendo las limitaciones de 1K, creo que andamos ahí ahí empatados.

Avatar de Usuario
minter
Mensajes: 1981
Registrado: 22 Jul 2014 18:51
Agradecido : 1424 veces
Agradecimiento recibido: 591 veces

Re: ZX-80 - Super Games

Mensajepor minter » 30 Oct 2018 12:10

Que bueno!
La Load'n'Run del ZX-80 by dancresp!
O "Juegos serie oro para ZX-80 menos el PakuPaku"
O "Dancresp's Small Box"

Y la caratula de la cinta? Ya la tienes ideada?
Tiene que ser vintaje tipo las de la época.

¿Hay 50 unidades de ZX-80 para hacer esa tirada? Jolin! Hay muchos mas equipos que Orics y Falcons juntos! -507

mininaller
Mensajes: 31
Registrado: 07 Jun 2018 10:17
Agradecimiento recibido: 9 veces

Re: ZX-80 - Super Games

Mensajepor mininaller » 30 Oct 2018 12:23

Otra pa mi, dancresp en nada tenemos el dandanator_zx80-81.
-4mstr4d cpc464,cpc472,cpc664,cpc6128 -4mstr4d cpc464plus cpc6126plus -4mstr4d gx4000 SCHNEIDER cpc464,cpc664,cpc6128 I love -4mstr4d

dancresp
Mensajes: 5249
Registrado: 13 Nov 2010 02:08
Agradecido : 89 veces
Agradecimiento recibido: 184 veces

Re: ZX-80 - Super Games

Mensajepor dancresp » 30 Oct 2018 13:10

web8bits escribió:Impresionante, sinceramente, me parece "magia" hacer algún juego para el ZX80. Me apunto a esa cinta.

Pues sí, es "casi" magia, porque es muy limitado.

Ahora, una vez le pillas el truquillo, me ha permitido mejorar las versiones que había hecho para el ZX-81.

Ni una sola vez me ha salido el error de falta de memoria, y eso mi equipo solo tiene 1 KB. Eso sí, cada vez escribes la linea más arriba porque recorta la memoria para el vídeo.

Y es curioso ver como a medida que escribes la linea en BASIC, te va avisando de que hay un error de sintaxis si no has cerrado un paréntesis, no reconoce un comando, etc.

BlackHole escribió:Me pregunto si con tan poca memoria es más fácil hacer un programa en código máquina, o si es justo al revés: por tener tan poca memoria ahorras trabajando en BASIC porque un byte de una palabra clave haría más cosas al ser interpretada por su ROM. En un VIC20 está claro que gana el CM, pero teniendo las limitaciones de 1K, creo que andamos ahí ahí empatados.

El problema es que no muestra nada en pantalla, excepto cuando espera la pulsación de una tecla.

Existe una versión del Pacman y Donkey Kong, programadas por un tio que se ha currado unas rutinas que permiten ejecutar el programa el 10% del tiempo que la CPU no se dedica a refrescar la pantalla. El ZX-81 ejecuta los programas mientras la circuitería dibuja el borde de la pantalla, y se detiene mientras refresca el contenido de la pantalla.

minter escribió:Y la caratula de la cinta? Ya la tienes ideada?
Tiene que ser vintaje tipo las de la época.

Ya tengo los 6 juegos, y me esta ayudando un amigo que es diseñador para decidirme entre una carátula chula o una de las cutres que habían antes. Casi seguro que apuesto por lo primero.

La carátula es totalmente profesional (encelofanada), según me han dicho. Y dentro hay un papelito con las instrucciones de cada juego, que estoy redactando.

El contenido se repite en ambas caras. Por si acaso.

Si no pasa nada, lo podréis pedir a los Reyes Magos. -grin

Avatar de Usuario
Jinks
Mensajes: 1314
Registrado: 09 Oct 2013 16:47
Agradecido : 60 veces
Agradecimiento recibido: 123 veces
Contactar:

Re: ZX-80 - Super Games

Mensajepor Jinks » 30 Oct 2018 14:30

Tienes el monopolio del software para el ZX80, eres como Microsoft para los PC en los 80/90 -thumbup

minter escribió:Que bueno!
La Load'n'Run del ZX-80 by dancresp!
O "Juegos serie oro para ZX-80 menos el PakuPaku"


¿Menos el PakuPaku? Cuidado, que ha dicho que el sexto va a ser muy especial...

dancresp
Mensajes: 5249
Registrado: 13 Nov 2010 02:08
Agradecido : 89 veces
Agradecimiento recibido: 184 veces

Re: ZX-80 - Super Games

Mensajepor dancresp » 04 Nov 2018 00:32

Bueno, pues al final no serán 6 juegos sino 8.

Una vez le he cogido el truquillo a programar el ZX-80, no solo me salen los juegos como churros, sino que no tengo la más mínima duda de que las adaptaciones que he hecho de los juegos del ZX-81 han quedado muy mejorados.

He estado analizando como guarda las líneas el BASIC del ZX-80 y he visto que no se guarda la longitud de cada linea, como sí hace el ZX-81, con lo que nos ahorramos dos bytes por linea, sino que los números se guarda simplemente sus dígitos, y el ZX-81 guarda 6 bytes extra por número.

Así, un simple "10 LET A=12345" ocupa 19 bytes en el ZX-81, pero solo 11 en el ZX-80.

Esto, aplicado en muchas líneas, nos da que un programa en ZX-81 difícilmente puede tener más de unas 30 líneas, y en el ZX-80 se puede llegar a las 50 líneas. Casi nada, y el resultado salta a la vista.

Estas versiones en ZX-80 muestran el nivel, verifican la entrada, controlan el final de los niveles, etc. Están más bien acabados.

Y esta es la lista definitiva de los 8 juegos que irán en la cinta:

1) Battleships
2) Lights Out
3) Manic Puzzle
4) Minefield
5) Reorder
6) Rush Hour
7) Solitaire
8) Sudoku

Y este es su aspecto definitivo:

DSC_0155.jpg
DSC_0155.jpg (136.94 KiB) Visto 259 veces

DSC_0160.jpg
DSC_0160.jpg (119.48 KiB) Visto 259 veces

DSC_0180.jpg
DSC_0180.jpg (129.19 KiB) Visto 259 veces

DSC_0163.jpg
DSC_0163.jpg (132.4 KiB) Visto 259 veces

DSC_0172.jpg
DSC_0172.jpg (132.25 KiB) Visto 259 veces

DSC_0173.jpg
DSC_0173.jpg (121.43 KiB) Visto 259 veces

DSC_0179.jpg
DSC_0179.jpg (125.22 KiB) Visto 259 veces

DSC_0175.jpg
DSC_0175.jpg (132.19 KiB) Visto 259 veces



Ahora me queda decidirme por la carátula.

Seguiremos informando...

Ben-kenobi
Mensajes: 513
Registrado: 01 May 2014 23:06
Agradecido : 9 veces
Agradecimiento recibido: 32 veces

Re: ZX-80 - Super Programs

Mensajepor Ben-kenobi » 04 Nov 2018 17:21

Apuntame una de esas cintas :D

Avatar de Usuario
minter
Mensajes: 1981
Registrado: 22 Jul 2014 18:51
Agradecido : 1424 veces
Agradecimiento recibido: 591 veces

Re: ZX-80 - Super Programs

Mensajepor minter » 04 Nov 2018 22:11

solo hubiera faltado un Torres de Hanoi y un City attack ya hubiera sido la bomba!

dancresp
Mensajes: 5249
Registrado: 13 Nov 2010 02:08
Agradecido : 89 veces
Agradecimiento recibido: 184 veces

Re: ZX-80 - Super Programs

Mensajepor dancresp » 08 Nov 2018 18:32

minter escribió:solo hubiera faltado un Torres de Hanoi y un City attack ya hubiera sido la bomba!

Incorporado el Towers de Hanoi, con siete discos.
El sistema mueve entre 20 y 50 veces las piezas y las tenemos que volver a colocar bien.
A la que pueda subo foto. Muy chulo.

El problema es que ahora hay 9 juegos. -banghead

¿A alguien se le ocurre cual puede ser el décimo?
No pueden ser de acción, solo de darle al "coco".

Avatar de Usuario
Hergoth
Mensajes: 561
Registrado: 31 Dic 2015 21:22
Agradecido : 125 veces
Agradecimiento recibido: 80 veces

Re: ZX-80 - Super Programs

Mensajepor Hergoth » 08 Nov 2018 18:38

dancresp escribió:¿A alguien se le ocurre cual puede ser el décimo?
No pueden ser de acción, solo de darle al "coco".

Un "ahorcado", ¿tal vez?

Avatar de Usuario
minter
Mensajes: 1981
Registrado: 22 Jul 2014 18:51
Agradecido : 1424 veces
Agradecimiento recibido: 591 veces

Re: ZX-80 - Super Programs

Mensajepor minter » 08 Nov 2018 19:47

O un MasterMind, que es tambien tipo ahorcado.


Volver a “Sinclair ZX80/81”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado