Probando el TZXDuino [y CASDuino, MaxDuino,...]

Proyectos de hardware con sus esquemáticos y si llevan software en fuente

Moderadores: cacharreo, Fundadores

Reglas del Foro
Aquí solo tienen cabida proyectos de hardware que incluyan siempre al menos sus esquemáticos para poder reproducirlos si llevan componentes electrónicos, y si es posible los ficheros del programa en que se hacen, los diseños de las placas, los gerber, etc. Si llevan algún tipo de software asociado debe estar diponible el código fuente

Para los que no cumplen estas condiciones se debe postear en el foro de proyectos generales.
Avatar de Usuario
msxmakers
El infierno es su lugar
El infierno es su lugar
Mensajes: 141
Registrado: 13 Feb 2020, 17:04
Has thanked: 13 times
Been thanked: 5 times

Re: Probando el TZXDuino

Mensaje por msxmakers »

por si a alguien le interesa (a mi si) aquí hay un nuevo proyecto que permite grabar también, no solo reproducir.
aunque si no voy mal encaminado el codigo para arduino no está disponible para ser estudiado: :~(
https://trolsoft.ru/en/sch/zx-tapper
saludos
MSXMakers
construye hardware conmigo en https://msxmakers.design.blog
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Probando el TZXDuino

Mensaje por rcmolina »

Maxduino v1.69

Hola a todos,

Espero esta nueva funcionalidad haga feliz a unos cuantos usuarios :P

-Búsqueda en TAPs y TZX al vuelo con Fast Forwarding. Manejo similar a la anterior en modo pausa, pero ahora recorre el fichero haia delnate y hacia atrás para posicionarse en el bloque.

https://github.com/rcmolina/MaxDuino



Un saludo,

Rafa
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Probando el TZXDuino

Mensaje por rcmolina »

Hola de nuevo, este fin de semana he liberado versión, ya vamos por la 1.71.
- La 1.70, tiene alguna optimización, pero quise remarcar que cambiando al bootloader optiboot con un programador liberas 1500 bytes lo que te permite flasheo completo sin quitar la parte de Acorn :D
- La 1.71, que he pulido un poco más lo de navegar por los bloques, añadiendo la posibilidad de subir/bajar el bloque a seleccionar de 20 en 20 (en modo pausa). Hay juegos multicarga con un nñumero de bloques enorme.. 200 o 300 bloques. Y aprovechando, pues en la línea de arriba muestro los bloques a 3 dígitos. También He subido las versiones hex optiboot, que cabe todo. Hay una de ellas que es "no bootloader", que incluyo el modo marble también en oled (XY2) para verlo todo más bonito sin los puntitos interpolados. Esta versió incluye una sorpresa no activada que me permite ahorrar 500 bytes y que ya he probado .. y funciona bien (librería optimizada). No es que quiera hacerme el interesante, pero como veo que el foro ha entrado un poco en punto muerto, pues quiero que se anime un poco.

También comentar que estos 6 meses no he estado nada parado.. He estado trabajando en el procedimiento general de carga con ID15 en muchos otros sistemas para extenderlo con facilidad convirtiendo a tzx id15. El que esté interesado, pues navega un poco por github y se encuentra todo.

Pediros disculpas porque a veces ando trasteando más de la cuenta en github sobre versiones liberadas. Como os imagináis flasheo en mis tzxduino que son unos cuantos y con muchas configuraciones diferentes... pruebo al azar y a veces me voy encontrando cosillas que rompo.

¡Hala! a disfrutar tanto como yo, y os dejo nuevos vídeos:



alferboy
Seguidor infernal
Seguidor infernal
Mensajes: 15
Registrado: 26 Sep 2020, 23:05

Re: Probando el TZXDuino

Mensaje por alferboy »

Hola!

Hace mucho que no hablamos.

He probabdo v1.74 y tengo algunas sugerencias:

- Anadir '#pragma config EESAVE ON' al codigo (tal vez en hwconfig) para no borrar EEPROM quando programa (menos pasos al probar / actualizar)
- Eliminar XY2_force y simplemente usar XY2 con doublefont para poupar tanto el código como el uso de la CPU
Si alguien quiere usar una fuente de 8x8 en la pantalla de 128x64, puede usar XY2 + Doublefont y "expandirlo" a 8x16. No?
Si lo deseas, puedo expandir todas las fuentes que existan en 8x8 a 8x16.
El único cambio necesario es para cuando se escriben ID, Bloque, Porcentaje, etc., escriben también la mitad inferior del carácter
O usar solo lo tamanho de fuente y pantalla para decidir, no haciend qualquier "scaling"
- Mover subdirLength y filenameLength a userconfig, ya que son configurables
- Corrigir linea 337 en display.ino > i2c_start(OLED_address<<1)|I2C_WRITE) => i2c_start((OLED_address<<1)|I2C_WRITE);
alferboy
Seguidor infernal
Seguidor infernal
Mensajes: 15
Registrado: 26 Sep 2020, 23:05

Re: Probando el TZXDuino

Mensaje por alferboy »

Convertir una fuente de MaxDuino de 8x8 a 8x16.

./conversor < fuente8x8 > fuente8x16

(los ficheiros son solamente la definición completa de la fuente desde la linea ifdef a endif
Exemplo. Passando esta fuente, el script de

Código: Seleccionar todo

#ifdef zxFont
const unsigned char myFont[][8] PROGMEM = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // SPC
0x00,0x00,0x00,0x00,0x5F,0x00,0x00,0x00,  // symbol '!'
...
0x00,0x42,0x42,0x76,0x08,0x08,0x00,0x00,  // symbol '}'
0x00,0x00,0x04,0x02,0x04,0x02,0x00,0x00 // symbol '~'
};
#endif
... generará:

Código: Seleccionar todo

#ifdef zxFont8x16
const unsigned char myFont[]][16] PROGMEM = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// SPC
0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,0x00,// symbol '!'
...
0x00,0x0C,0x0C,0x3C,0xC0,0xC0,0x00,0x00,0x00,0x30,0x30,0x3F,0x00,0x00,0x00,0x00,// symbol '}'
0x00,0x00,0x30,0x0C,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00// symbol '~'
};
#endif

Después adicionas todo lo que he sido gerado a las fuentes 8x16.

El script:

Código: Seleccionar todo

#!/usr/bin/perl

# Expande una fuente de MaxDuino de 8x8 a 8x16, duplicando la misma en altura

while (<STDIN>)
{
  s/ifdef\s+(.+?)(\s*)$/ifdef ${1}8x16${2}/; # transforma <font> => <font>8x16
  
  s/\[\]\[8\]/[]][16]/; # transforma => [8] => [16]
  	
  if (! /(^(0x[0-9A-F]{2},*\s*){8})/i) # es lista de numeros?
  {
    # si no, imprime la linea
    print; 
  }
  else # transforma la lista
  {
	$line=$_;
    $m=$1;
	@vals=split(/,/); # parte los números por las comas y los guarda
	
	for($v=0;$v<8;$v++) # expandir 8 COLUNAS
	{
	   ($h)= $vals[$v] =~/0x([0-9A-F]{2})/i; # tira parte hex de cada número
	   $vv=hex($h); # y lo convierte a decimal

	   $dvn=0; # nuevo valor de coluna (expandido a 16bit)

	   for ($sbit=7;$sbit>=0;$sbit--) # duplicar cada bit fuente en dos bits
	   {
	     $b=($vv >> $sbit) & 1 ; # obtiene el bit
 		 $dvn=$dvn<<1; # y lo agrega dos veces, desplazando el valor a la izquierda
		 $dvn|=($b&1);
		 $dvn=$dvn<<1;
		 $dvn|=($b&1);
	   }	   	
	   $nv[$v+8]=sprintf("0x%02X",$dvn>>8); # parte alta
	   $nv[$v]=sprintf("0x%02X",$dvn&0xff); # parte baja
	}	
    $vs= join(',',@nv).( $m =~ /,\s*$/ ? ',' : ''); ## nueva string de datos, con coma final si ya existía
	
	$line=~s/$m/$vs/; # reemplaza solo los datos en la línea
	print $line; # imprime la linea
  }

}

Avatar de Usuario
Onlyfordj
Demonio segundo orden
Demonio segundo orden
Mensajes: 1023
Registrado: 30 Dic 2016, 09:28
Ubicación: Valencia
Has thanked: 58 times
Been thanked: 27 times

Re: Probando el TZXDuino

Mensaje por Onlyfordj »

Hace un tiempo compré el Megaduino de Merlinkv... pero no se que ha pasado que lo he quemado... si... le he puesto un cargador usb en mal estado y ahora huele a chamusquina.
Pregunto... este TZXDuino es un estilo al Megaduino? Intento arreglar el Megaduino o me compro un TZXDuino. Se hizo tirada por aquí?
La verdad que el Megaduino de Merlinkv me cargaba de todo y lo tenia manejado...

El TZXDuino... será lo mismo que el Megaduino de Merlinkv?

Gracias.
Avatar de Usuario
geloalex !Msx 3
Demonio segundo orden
Demonio segundo orden
Mensajes: 1397
Registrado: 19 Abr 2018, 19:21
Ubicación: Instagram: geloalex
Has thanked: 936 times
Been thanked: 487 times

Re: Probando el TZXDuino

Mensaje por geloalex »

Mira a ver de donde viene el chamuscado , con la misma lo puedes reparar o es el arduino...
Abre hilo y pon fotos a ver si te podemos ayudar
SpectrumZX81,ZX48,ZX48+,ZX128+2+3CommodoreA1200,A500,C64,C64C,C16AmstradCPC464,CPC6128MSXHB20P,HB75P,HBF1,HBF1XD,SVI728,8020Atari2600Sixer,2600Jr,7800PhillipsVideopacG7000NintendoGB,GBC,GBA,NES,FAMICOM,SNES,N64PCEnginePCEngine,PCEngineDUOSegaGG,SMS,SMS2,MD1,MD2,MEGACD2,SATURN,DC,NAOMIMicrosoftXBOX360Sony PS1,PS2,PS3,PS4,PSP,PSVitaMINISNES,SNES,MD,PSX INSTAGRAM: geloalex
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5620
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1190 times
Been thanked: 2719 times
Contactar:

Re: Probando el TZXDuino

Mensaje por cacharreo »

Secundo esta propuesta. Habría que ver qué se ha quemado pero posiblemente podría repararse.
© cacharreo
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Probando el TZXDuino

Mensaje por rcmolina »

alferboy escribió: 27 Dic 2021, 14:07 Hola!

Hace mucho que no hablamos.

He probabdo v1.74 y tengo algunas sugerencias:

- Corrigir linea 337 en display.ino > i2c_start(OLED_address<<1)|I2C_WRITE) => i2c_start((OLED_address<<1)|I2C_WRITE);
Este pequeño error lo tienes corregido tras los últimos cambios de la 1.76.
Avatar de Usuario
rcmolina
Demonio tercer orden
Demonio tercer orden
Mensajes: 515
Registrado: 07 Feb 2016, 10:27
Been thanked: 7 times

Re: Probando el TZXDuino

Mensaje por rcmolina »

Onlyfordj escribió: 09 Jun 2022, 19:22 El TZXDuino... será lo mismo que el Megaduino de Merlinkv?
El TZXDuino es el hermano pequeño, tiene menos capacidad pero lo tenemos aprovechado a tope, no va a notar mucha diferencia. Lleva normalmente un arduino nano o similar, más baratillo.

El megaduino lleva un arduino mega2560, y es de largo el componente más caro. Si está montado en zócalo pues te será sencillo remplazarlo, si no :(

A mí la verdad, una vez me cascó la fuente, pero no le pasó nada al arduino. Sólo he roto un arduino por pura mala suerte.. Tenía los cable sujetos con los dedos mientras volcaba el firmware, y se me escapó el GND, hice de todo, imposible.

Lo primero la fotito, que tiene un piloto rojo cuando se enciende..
Responder

Volver a “Proyectos de hardware abiertos”