Simplificando el Spectrum. Duda tecnica.

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
Namek
Amstrad PC 1640
Amstrad PC 1640
Mensajes: 607
Registrado: 11 Jul 2011, 13:13
Gracias dadas: 12 veces
Gracias recibidas: 26 veces

Simplificando el Spectrum. Duda tecnica.

Mensajepor Namek » 15 Sep 2018, 23:39

Hola,

Estoy programando un emulador de Spectrum básico usando FreeBASIC y me he dado cuenta que la mayor parte del meollo se lo lleva el Z80, por tanto me ha surgido la duda:

¿Como de simple y barato podría ser un circuito o un integrado programable para generar la señal de video del Spectrum a partir de una RAM, ¡OJO! No estoy hablando de diseñar un sustituto de la ULA ni conseguir los timings exactos del Spectrum, sería un circuito o integrado que exclusivamente generaría la señal de video, sin ningún tipo de sincronización ni nada y mientras mas simple y barato mejor, por supuesto tendría que compartir el acceso a RAM con el Z80 pero ignorando tambien por completo el tema de la contención original del Spectrum, si tiene que tener contención porque es mas facil vale y si no pues mejor.

Como supongo que habreis imaginado la idea sería la posibilidad de montar una placa con una EPROM, una RAM, un Z80 y este circuito de video o integrado o lo que sea con lo cual obtendríamos algo compatible con el Spectrum, la cuestión sería como de compatible. Supongo que el teclado, el beeper y la entrada de audio pueden ir directamente al Z80, ¿o no?

A ver que me podeis decir los que entendeis del tema... :mrgreen:

Avatar de Usuario
Bubu
MSX Turbo R
MSX Turbo R
Mensajes: 464
Registrado: 04 Abr 2018, 23:10
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Nintendo GameBoy
Gracias dadas: 10 veces
Gracias recibidas: 13 veces

Re: Simplificando el Spectrum. Duda tecnica.

Mensajepor Bubu » 16 Sep 2018, 00:23

¡Jarl! No veo cómo vas a colocar el teclado, la salida de sonido, la entrada de sonido, etc, direstamente en el Z80. Yo lo veo más que complicao.
Por otra parte, mi emulador básico de Spectrum lo estoy haciendo en QBasic 64 (QB64), y la parte del Z80 me está siendo mmmmmuy fácil, lo jodido va a ser la ULA. Ahí es donde está para mí el meollo...
Si algo funciona... ¡¡NO LO TOQUES!! ¡¡NI DE COÑA!!

Avatar de Usuario
Namek
Amstrad PC 1640
Amstrad PC 1640
Mensajes: 607
Registrado: 11 Jul 2011, 13:13
Gracias dadas: 12 veces
Gracias recibidas: 26 veces

Re: Simplificando el Spectrum. Duda tecnica.

Mensajepor Namek » 16 Sep 2018, 01:04

Bubu escribió:¡Jarl! No veo cómo vas a colocar el teclado, la salida de sonido, la entrada de sonido, etc, direstamente en el Z80. Yo lo veo más que complicao.
Por otra parte, mi emulador básico de Spectrum lo estoy haciendo en QBasic 64 (QB64), y la parte del Z80 me está siendo mmmmmuy fácil, lo jodido va a ser la ULA. Ahí es donde está para mí el meollo...

El sonido del Spectrum 48K es simplemente 1 bit, osea un circuito electrico que se abre o se cierra, como mucho haria falta amplificar la señal, y el teclado son 5 bits para cada tecla de las semifilas de 5 teclas y 8 bits para las 8 semifilas, por tanto creo que puede ir cableado directamente al Z80, que me corrijan si me equivoco.

Aun no entiendo tu planteamiento, si estas haciendo un emulador "BASICO" que pretendes emular de la ULA?

Avatar de Usuario
Bubu
MSX Turbo R
MSX Turbo R
Mensajes: 464
Registrado: 04 Abr 2018, 23:10
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Nintendo GameBoy
Gracias dadas: 10 veces
Gracias recibidas: 13 veces

Re: Simplificando el Spectrum. Duda tecnica.

Mensajepor Bubu » 16 Sep 2018, 01:37

El sonido serán 1's y y 0's, sí, pero, ¿a qué frecuencia?

Yo entiendo un emulador "básico" aquel que: no emula las cintas ni el bus de expansión. Todo lo demás es básico: pantalla, teclado, sonido, etc. Y todo eso lo lleva la ULA.
Tú creo que lo que estás haciendo es emular la CPU solamente, ¿nor?
Si algo funciona... ¡¡NO LO TOQUES!! ¡¡NI DE COÑA!!

Avatar de Usuario
Bubu
MSX Turbo R
MSX Turbo R
Mensajes: 464
Registrado: 04 Abr 2018, 23:10
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Nintendo GameBoy
Gracias dadas: 10 veces
Gracias recibidas: 13 veces

Re: Simplificando el Spectrum. Duda tecnica.

Mensajepor Bubu » 16 Sep 2018, 01:39

Y respecto a tu montaje, piensa en cómo le vas a conectar el teclado direstamente a la CPU. ¿Al bus de datos? Ahora imagina que la CPU está leyendo la memoria RAM, y en ese momento pulsas una tecla. ¿Qué ocurriría en el bus de datos? Habría colisión de la información. Pues para eso está la ULA.
Si algo funciona... ¡¡NO LO TOQUES!! ¡¡NI DE COÑA!!

Avatar de Usuario
Namek
Amstrad PC 1640
Amstrad PC 1640
Mensajes: 607
Registrado: 11 Jul 2011, 13:13
Gracias dadas: 12 veces
Gracias recibidas: 26 veces

Re: Simplificando el Spectrum. Duda tecnica.

Mensajepor Namek » 16 Sep 2018, 01:50

Bubu escribió:El sonido serán 1's y y 0's, sí, pero, ¿a qué frecuencia?
A la frecuencia que se le programe con el Z80.
Bubu escribió:Yo entiendo un emulador "básico" aquel que: no emula las cintas ni el bus de expansión. Todo lo demás es básico: pantalla, teclado, sonido, etc. Y todo eso lo lleva la ULA.
Tú creo que lo que estás haciendo es emular la CPU solamente, ¿nor?
Correcto, solo emulo el Z80 y represento la memoria de video del spectrum en pantalla y cuando el Z80 hace un OUT cambio el color del borde en consecuencia y cuando hace un IN le paso los bits correspondientes si se ha pulsado una tecla y "Voila", parece un Spectrum, huele como un Spectrum, incluso sabe como un Spectrum, pero no lo es... :roll:
Última edición por Namek el 16 Sep 2018, 01:56, editado 3 veces en total.

Avatar de Usuario
Namek
Amstrad PC 1640
Amstrad PC 1640
Mensajes: 607
Registrado: 11 Jul 2011, 13:13
Gracias dadas: 12 veces
Gracias recibidas: 26 veces

Re: Simplificando el Spectrum. Duda tecnica.

Mensajepor Namek » 16 Sep 2018, 01:51

Bubu escribió:Y respecto a tu montaje, piensa en cómo le vas a conectar el teclado direstamente a la CPU. ¿Al bus de datos? Ahora imagina que la CPU está leyendo la memoria RAM, y en ese momento pulsas una tecla. ¿Qué ocurriría en el bus de datos? Habría colisión de la información. Pues para eso está la ULA.
El Z80 tiene una señal para determinar a donde apunta el bus de datos y el bus de direcciones, puede ser a la RAM o puede ser a un puerto de comunicaciones externo, cuando esa señal este activa es cuando el bus de datos se conectaria con los cablecitos del teclado, el altavoz y los del jack de la entrada de audio.

Avatar de Usuario
Bubu
MSX Turbo R
MSX Turbo R
Mensajes: 464
Registrado: 04 Abr 2018, 23:10
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Nintendo GameBoy
Gracias dadas: 10 veces
Gracias recibidas: 13 veces

Re: Simplificando el Spectrum. Duda tecnica.

Mensajepor Bubu » 16 Sep 2018, 02:21

¿Y quién decide cuando astivar o desastivar esa señal?
Si algo funciona... ¡¡NO LO TOQUES!! ¡¡NI DE COÑA!!

Avatar de Usuario
Namek
Amstrad PC 1640
Amstrad PC 1640
Mensajes: 607
Registrado: 11 Jul 2011, 13:13
Gracias dadas: 12 veces
Gracias recibidas: 26 veces

Re: Simplificando el Spectrum. Duda tecnica.

Mensajepor Namek » 16 Sep 2018, 10:53

Bubu escribió:¿Y quién decide cuando astivar o desastivar esa señal?
Esa señal se activa cuando el Z80 ejecuta un IN o un OUT, de esa forma los OUT no afectan a la RAM ni los IN leen de la RAM cuando deben leer de los puertos.

Avatar de Usuario
Kyp
Amstrad CPC 464
Amstrad CPC 464
Mensajes: 61
Registrado: 31 Dic 2013, 12:42
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: Vectrex
Gracias recibidas: 2 veces

Re: Simplificando el Spectrum. Duda tecnica.

Mensajepor Kyp » 16 Sep 2018, 17:27

Namek escribió:Hola,
¿Como de simple y barato podría ser un circuito o un integrado programable para generar la señal de video del Spectrum a partir de una RAM

Ya existe un reemplazo de ULA perfecto basado en una CPLD Xilinx XC95144XL que vale unos 10 y 15 euros. Incluso hay algunos Spectrums montados como el que dices: http://www.zxuno.com/forum/viewtopic.php?t=1749
Yo tengo uno :mrgreen:


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 2 invitados