Avances en el desarrollo del ZX-Uno
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Avances en el desarrollo del ZX-Uno
Al final he probado a sacar una onda cuadrada de 1Khz por el speaker y medir por el Scart (enchufado a la TV) con el osciloscopio. Afortunadamente tenemos menos de 950mV pico-pico, que queda dentro del margen. La señal no es exactamente cuadrada sino tipo aletas de tiburón debido al filtrado. Adjunto también el código fuente que genera dicha señal, aunque es tan simple como 6 líneas en ensamblador.
- Adjuntos
-
- beep.zip
- (713 Bytes) Descargado 552 veces
-
- IMAG001.png (3.36 KiB) Visto 23090 veces
- TallerSeverino
- Amstrad PC 1640
- Mensajes: 519
- Registrado: 12 Abr 2013, 09:55
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo NES/Clónica
- Primera consola: Nintendo NES/Clónica
- Ubicación: Cádiz
- Gracias dadas: 17 veces
- Gracias recibidas: 17 veces
Re: Avances en el desarrollo del ZX-Uno
antoniovillena escribió:Al final he probado a sacar una onda cuadrada de 1Khz por el speaker y medir por el Scart (enchufado a la TV) con el osciloscopio. Afortunadamente tenemos menos de 950mV pico-pico, que queda dentro del margen. La señal no es exactamente cuadrada sino tipo aletas de tiburón debido al filtrado. Adjunto también el código fuente que genera dicha señal, aunque es tan simple como 6 líneas en ensamblador.
Pues entonces deben salir menos voltios del dac de los 3 que habíamos dicho, en este caso no hace falta modificación alguna.
Como el filtro paso bajo no se altera sustancialmente con una carga tan alta pues se deja tal como está.
Un saludo.
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Avances en el desarrollo del ZX-Uno
He creado el bootloader, que es una pequeña ROM que carga los 16K de ROM que se encuentren en la dirección $2C000 de la SPI Flash. Ocupa 59 bytes y además de aquí está en la carpeta firmware del repositorio:
Código: Seleccionar todo
macro wreg dir, dato
rst $30
defb dir, dato
endm
output bootloader.rom
define zxuno_port $fc3b
define master_conf 0
define master_mapper 1
define flash_spi 2
define flash_cs 3
di
ld sp, $c000-11
ld a, 2 ; byte mas significativo de direccion
wreg master_mapper, 8 ; paginamos la ROM en $c000
wreg flash_cs, 0 ; activamos spi, enviando un 0
wreg flash_spi, 3 ; envio flash_spi un 3, orden de lectura
out (c), a ; envia direccion 02c000, a=02,h=c0,l=00
ld de, $c761 ; tras el out (c), h de bffc se ejecuta
push de ; un rst 0 para iniciar la nueva ROM
ld d, (hl) ; en $bffc para evitar que el cambio de ROM
push de ; colisione con la siguiente instruccion
add hl, sp
out (c), h
out (c), l
dec hl ; Primera lectura que se descarta...
boot ini
inc b
ini
inc b
cp h ; compruebo si la direccion es 0000 (final)
jr c, boot ; repito si no lo es
wreg flash_cs, 1 ; desactivando spi
dec b
out (c), h ; a master_conf quiero enviar un 0 para pasar
inc b ; a modo normal, pero el ultimo out lo ubico
jp $bffd-11
rst30 ld bc, zxuno_port + $100
pop hl
outi
ld b, (zxuno_port >> 8)+2
outi
jp (hl)
- Adjuntos
-
- bootloader.zip
- (224 Bytes) Descargado 529 veces
- mcleod_ideafix
- Amiga 2500
- Mensajes: 5316
- Registrado: 06 Oct 2009, 04:12
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Vectrex
- Primera consola: TV Games/Pong Clone
- Ubicación: Jerez de la Frontera
- Gracias dadas: 12 veces
- Gracias recibidas: 54 veces
- Contactar:
Re: Avances en el desarrollo del ZX-Uno
Ok! Yo tengo ahora mismo el desarrollo de cores y demás pelín parado porque ya he vuelto al trabajo, después del alta médica, y tengo que ponerme al día con unas cuantas cosas. Además tengo una mudanza interna y no podré acceder a mis cacharros durante unos días (espero que sólo sean días) 

Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Avances en el desarrollo del ZX-Uno
Pues yo todo lo contrario, lo he tenido durante un tiempo parado y ahora es cuando le quiero meter caña. Si puede ser, para cuando lo retomes me gustaría que subieras algunos archivos en tu último core, para facilitar la actualización de la SPI. Lo primero, dentro de la carpeta no se sabe de dónde procede roms_for_flash_at_30000.bin, así que lo he averiguado con el editor hexadecimal y tras incorporar la ROM de 48K en la dirección 2C000 tendríamos este archivo bat (incluir dentro de la carpeta roms_para_la_flash):
Luego por otro lado no hay indicaciones claras de cómo obtener prom.mcs. Supongo que lo has hecho al igual que yo con srec_cat, y a no ser que uses un método más sencillo que el mío te sugiero que incluyas un .bat en la carpeta test12 como este:
promgen es un ejecutable que se encuentra en la instalación del ISE Webpack, para no liarse con el PATH recomiendo crear
un archivo llamado promgen.bat en la misma carpeta con este contenido:
Cambiando <unidad> y <ruta> por los valores que se ajusten a tu instalación particular.
Código: Seleccionar todo
copy /b 48.rom+ ^
mmces3eE.rom+ ^
se-0.rom+ ^
se-1.rom+ ^
ESXMMC.BIN ^
roms_2c000.bin
Luego por otro lado no hay indicaciones claras de cómo obtener prom.mcs. Supongo que lo has hecho al igual que yo con srec_cat, y a no ser que uses un método más sencillo que el mío te sugiero que incluyas un .bat en la carpeta test12 como este:
Código: Seleccionar todo
call promgen -w -spi -p mcs -o tld_zxuno.mcs -s 4096 -u 0 tld_zxuno.bit
srec_cat tld_zxuno.mcs ^
-Intel roms_para_la_flash\roms_2c000.bin ^
-binary ^
-offset 0x2c000 ^
-o prom.mcs ^
-Intel ^
-line-length=44 ^
-line-termination=nl
promgen es un ejecutable que se encuentra en la instalación del ISE Webpack, para no liarse con el PATH recomiendo crear
un archivo llamado promgen.bat en la misma carpeta con este contenido:
Código: Seleccionar todo
<unidad>:\<ruta>\Xilinx\12.1\ISE_DS\ISE\bin\nt64\promgen.exe %*
Cambiando <unidad> y <ruta> por los valores que se ajusten a tu instalación particular.
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Avances en el desarrollo del ZX-Uno
Más avances, ya he lanzado la primera beta de la BIOS, adjunto aquí el .mcs ya generado.
-- Actualizado 09 Abr 2014, 01:01 --
Ojo, todavía faltan muchas cosas. El DivMMC no sé cómo inicializarlo (me tengo que leer la documentación) por lo que la ROM del +3e en realidad funciona como +2e.
-- Actualizado 09 Abr 2014, 01:01 --
Ojo, todavía faltan muchas cosas. El DivMMC no sé cómo inicializarlo (me tengo que leer la documentación) por lo que la ROM del +3e en realidad funciona como +2e.
Última edición por antoniovillena el 12 Abr 2014, 02:53, editado 1 vez en total.
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Avances en el desarrollo del ZX-Uno
Ahí va otra actualización. Ya tengo implementada (a falta de probar) la introducción de ROMs por cinta, por lo que esta será la última vez que distribuyo el .mcs. Para actualizar el firmware a partir de ahora tendréis que ejecutar loadf.bat que genera loadf.tap y loadf.wav (todos en la carpeta firmware del repositorio). Recomiendo cargar el WAV con la ROM de CargandoLeches (está incluída en este .mcs).
Os animo a probarla a los que tengáis el prototipo: julio, jepalza, mcleod y superfo.
Os animo a probarla a los que tengáis el prototipo: julio, jepalza, mcleod y superfo.
- Adjuntos
-
- prom2.zip
- (398.61 KiB) Descargado 547 veces
-
- Commodore 128
- Mensajes: 121
- Registrado: 22 Feb 2013, 18:58
- Sistema Favorito: Spectrum +2
- primer_sistema: Spectrum 16Kb/48Kb
- Primera consola: TV Games/Pong Clone
Re: Avances en el desarrollo del ZX-Uno
Pues si es la ultima vez que generas un mcs mal lo voy a llevar, porque controlo lo de soldar un poco, lo de pelearme con el impact y el programador usb para meter los mcs....
¿como uso el loadf.bat?
¿como uso el loadf.bat?

Re: Avances en el desarrollo del ZX-Uno
antoniovillena escribió:Os animo a probarla a los que tengáis el prototipo: julio, jepalza, mcleod y superfo.
Lo acabo de probar. Le veo dos problemas: está muy poco tiempo en pantalla la presentación, y no te da tiempo de ver las dos teclas que se pueden pulsar , he tenido que apagar y encender 4 o 5 veces para poder leer los textos y adivinar que la tecla BREAK me lleva al menú. El otro problema, es que mi teclado PS2 (al menos el que uso como pruebas) es un mini PS2, un teclado reducidom como si fuera uno de un portátil, pero externo, y la tecla BREAK no parece funcionar como en un teclado PS2 estándar, por lo tanto, no he podido probar el menú, ya que no accedo a él.
A ver si encuentro un PS2 completo en casa, sin tener que ir a la lonja.
- antoniovillena
- Amiga 1200
- Mensajes: 2013
- Registrado: 16 Abr 2012, 21:22
- Gracias recibidas: 8 veces
Re: Avances en el desarrollo del ZX-Uno
JULIO escribió:Pues si es la ultima vez que generas un mcs mal lo voy a llevar, porque controlo lo de soldar un poco, lo de pelearme con el impact y el programador usb para meter los mcs....
¿como uso el loadf.bat?
Es que la BIOS tiene su propio sistema de carga de ROMs, pero vamos que si luego necesitas un .mcs te lo envío individualmente.
El loadf.bat lo que te actualiza es la BIOS (te sube el archivo firmware.rom a la SPI Flash). Para usar el loadf.bat previamente tienes que haber cargado este archivo .mcs. Y también necesitabas 2 ejecutables externos que no estaban en el repositorio pero que los acabo de subir (GenTape y SjAsmPlus). Haz un update y comprueba que ejecutando loadf.bat se generan en la misma carpeta loadf.tap y loadf.wav. El loadf.tap lo puedes cargar en cualquier ROM, es carga estándar. El loadf.wav es para la ROM de CargandoLeches, en dicha ROM no hace falta escribir LOAD"", y si quieres escribir algo previamente tienes que pulsar espacio. También puedes usar el formato TZX en lugar del WAV (para la versión CargandoLeches) por si te es más sencillo.
-- Actualizado 12 Abr 2014, 08:38 --
jepalza escribió:Lo acabo de probar. Le veo dos problemas: está muy poco tiempo en pantalla la presentación, y no te da tiempo de ver las dos teclas que se pueden pulsar , he tenido que apagar y encender 4 o 5 veces para poder leer los textos y adivinar que la tecla BREAK me lleva al menú. El otro problema, es que mi teclado PS2 (al menos el que uso como pruebas) es un mini PS2, un teclado reducidom como si fuera uno de un portátil, pero externo, y la tecla BREAK no parece funcionar como en un teclado PS2 estándar, por lo tanto, no he podido probar el menú, ya que no accedo a él.
A ver si encuentro un PS2 completo en casa, sin tener que ir a la lonja.
Es la tecla Break del Spectrum, que se corresponde con la tecla Esc del PC. Lo sé, aparentemente es confuso pero tiene su lógica, la BIOS está pensada para un spectrum y en spectrum no existe la tecla Esc. De forma alternativa puedes pulsar Shift+Espacio (Ctrl Iz+Espacio). Esa tecla es para que te aparezca la lista de arranque, te puedes meter en ella y seleccionar la última opción para meterte en la BIOS, pero es más lento.
Para meterte directamente en la BIOS hay que usar la tecla Edit del Spectrum. En el PC con el mapeado McLeod se corresponde con F2, también puedes pulsar Shift+1 (Ctrl Iz+1).
En resumen, tienes que usar las mismas teclas que usarías en la BIOS de un PC (Escape y F2). Desde mi punto de vista hay suficiente tiempo para pulsar las teclas, aunque si queréis más lo puedo cambiar. Tened en cuenta que esto repercute negativamente en el tiempo de arranque total.
También recordad que para meterse de nuevo en la BIOS es necesario un master reset (Ctrl+Alt+Backspace), así que la combinación de teclas a recordar es:
- Ctrl+Alt+Backspace seguido de Esc.
- Ctrl+Alt+Backspace seguido de F2.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados