Después de unos meses fuera de los foros, vuelvo con un proyecto en el que llevo tiempo trabajando y en el que no he conseguido los resultados buscados.
El diseño del bus de direcciones y datos del ZX81 presenta diferencias notables con respecto al ZX Spectrum. Las señales que salen por el bus de expansión son diferentes a las que se encuentran en el zócalo de la ROM, por lo que no se puede replicar un montaje basado en una EPROM en el zócalo, con la misma EPROM en una interface conectada al bus de expansión.
Las líneas del bus de direcciones A0-A8 que salen por el puerto de expansión son las mismas que llegan al Z80, pero no son las mismas que acceden a la ROM o a la ULA. Entre Z80 y ROM hay unas resistencias (R18-R26) de 1K. Estas líneas del bus de direcciones por el lado de la ULA solo están disponibles en el zócalo de la ROM, no salen por el bus de expansión.
La señal /ROMCS que sale por el puerto de expansión (23B) es la misma señal que la de la ROM, pero no que la de la ULA; ya que hay una resistencia entre la ROM y la ULA (R28: 680 ohm).
La ULA debe tener acceso a los bits bajos del bus de direcciones para tener acceso al conjunto de caracteres de la ROM durante el ciclo de refresco.
La señal M1 (Machine Cycle 1) conecta la CPU con la ULA, y la señal sale por el puerto de expansión (pin 22A). Los ciclos T3 y T4 de M1 se usan para refrescar las memorias dinámicas. Los 7 bits más bajos del bus de direcciones contienen la dirección de memoria a refrescar y la señal RFSH se activa. Esta conexión CPU-ULA no existe en el ZX Spectrum.
Común
Los montajes se basan en la EPROM 27C128 (16 kB). Los pines Vpp (pin 1), Vcc (pin 28) y PGM (pin 27) se conectan a +5V.
La línea A13 (pin 26) permite seleccionar el banco de la EPROM que queremos, por lo que se ubica un selector a +5V y a GND.
Montaje 1
El diseño está basado en una interface de ROM externa que funciona en un ZX Spectrum, no lo hace en un ZX81. En este caso se manejan las señales ROMCS, RD y MREQ.
Montaje 2
Basado en el diseño de Wilf Rigter de una interface externa con una EPROM 27C64 (8 kB) para tener un juego de caracteres externo. Solo se replica el montaje que incluye a las señales ROMCS y RD con el transistor 2N3904 (BC547, aunque seguramente cualquier NPN serviría), RFSH al pin OE, así como las líneas A13, A14 y A15.
Montaje 3
Mismo esquema que el anterior, pero en este caso montaje al completo, incluyendo los chips 74HC374 (registro de flip-flops síncrono tipo D) y 74HC193 (contador binario) de tecnología CMOS.
En el chip 74HC374, las señales CLK y /OE son comunes a todos los flip-flops y se dispara por nivel alto del CLK. La señal /RD del ZX81 entra a CLK. Esta señal se encuentra en nivel alto en los ciclos T3 y T4, que es cuando se produce el refresco de las memorias, y por lo tanto provocando la activación del registro. Cuando /OE está a bajo nivel, el contenido de los 8 flip-flops se encuentra disponible a la salida. En el montaje, la conexión a GND garantiza esta disponibilidad. Por lo tanto, este chip garantiza el acceso a las líneas bajas del bus de direcciones (A3-A9) durante el ciclo de refresco.
El chip 74HC193 es un contador binario de 4 bits. Los datos se cargan cuando /LOAD (PE – pin 11) se encuentra a bajo nivel y cuando CLEAR (MR – pin 14) se encuentra igualmente a bajo nivel, algo que se garantiza con la conexión a GND de este último en el montaje. Con este esquema de conexiones, las entradas (D1 – D4) siempre están a alto nivel y las salidas (Q1 – Q3, Q4 no conectada) se activarán cuando NMI esté a bajo nivel, y por lo tanto /LOAD. Durante el proceso de generación del display, se genera una NMI cada vez que el Z80 deba ejecutar un scanline momento en el que se generará un pulso HSYNC.
De esta manera se controla el acceso a las líneas A0 a A2 del bus de direcciones. La razón por la cual la señal COUNT-UP (pin 5) se encuentra conectada a la señal HALT del ZX81 se desconoce. La instrucción HALT provoca que el Z80 ejecute NOPs hasta que se produzca una interrupción (NMI o INT). Durante la generación del display, se produce un HALT al final de cada línea.
Pruebas adicionales con el Montaje 3
Se han hecho diferentes pruebas con software que usa pseudo-HIRES y HIRES. En los programas HIRES ha funcionado correctamente, y solamente en los casos en los que se requería mostrar caracteres éstos no se reproducían correctamente. Los programas con pseudo-HIRES no se ven correctamente.
En todo este trabajo he invertido del entorno de 4 meses. Por no poner el montón de fotos que he hecho, he preparado un video (6 minutos) que recoge todo lo explicado anteriormente.
Interface ROM Externa para ZX81....Historia de un fracaso
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.
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.
- eltargui
- Demonio tercer orden
- Mensajes: 516
- Registrado: 29 Abr 2014, 16:33
Interface ROM Externa para ZX81....Historia de un fracaso
ZX eltargui un blog dedicado a los micro-ordenadores Sinclair
- sinclair200
- Moderador
- Mensajes: 10000
- Registrado: 28 Mar 2014, 18:25
- Ubicación: Madrid
- Has thanked: 8 times
- Been thanked: 178 times
Re: Interface ROM Externa para ZX81....Historia de un fracaso
Yo no lo consideraría un fracaso, si, es verdad que has hechado horas por un tubo, pero después de ese trabajo, nos has permitido conocer mas a fondo los entresijos de ese pequeñajo de 1K de Ram......
Z80 INSIDE.........
WANTED:…………. CPC 6128 british
- flopping
- Fundador
- Mensajes: 9974
- Registrado: 29 Mar 2013, 15:26
- Ubicación: Valencia
- Been thanked: 124 times
- Contactar:
Re: Interface ROM Externa para ZX81....Historia de un fracaso
Hola Eltargui, ¿me puedes pasar roms para el zx81?, ya que quiero probar unas ideas de como poder hacer lo que quieres a ver si lo consigo y para eso necesito otras roms que no sean las originales y ver si funciona correctamente, jejejejeje.
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide.
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".
Mi juego, que puedes descargar desde aqui
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".
Mi juego, que puedes descargar desde aqui
- eltargui
- Demonio tercer orden
- Mensajes: 516
- Registrado: 29 Abr 2014, 16:33
Re: Interface ROM Externa para ZX81....Historia de un fracaso
Hola flopping, que tal?. Te dejo 2 ROMsflopping escribió:Hola Eltargui, ¿me puedes pasar roms para el zx81?, ya que quiero probar unas ideas de como poder hacer lo que quieres a ver si lo consigo y para eso necesito otras roms que no sean las originales y ver si funciona correctamente, jejejejeje.
Esta es una ROM de pruebas que vale para el ZX80 y ZX81. Ocupa 2 kb y permite ver problemas en la RAM. Funciona bastante bien. Al tener pantalla de inicio, está bien para ver que realmente ha arrancado esta y no la original del ZX81.
También, te dejo esta que es la original del ZX81. La primera versión original que contiene el famoso error del PRINT SQR 0,25 (1,3591409 en vez de 0,5), por lo que también podrás identificarla de la que tengas en el ZX81.
Son las que uso yo para estos temas. Otros montajes que he hecho con la misma EPROM pero sobre el zócalo original los puedes ver en este hilo de RW. Éste se me ha atravesado. Hay interfaces modernos que tienen esta posibilidad pero no consigo dar con el diseño adecuado.
ZX eltargui un blog dedicado a los micro-ordenadores Sinclair