señales del Z80

By mohai

Paladin (829)

mohai's picture

28-11-2013, 15:05

Hola,

Supongamos que tengo un cartucho que no tiene la patilla para /IOREQ, pero sí tiene la señal /MREQ.
Si quiero montar un puerto (IN/OUT), ¿Podría obtener la señal /IOREQ a partir de negar /MREQ y esperar a que se activen /WR o /RD?
En otras palabras, el cartucho tendría que invertir la señal /MREQ y usar el resultado junto /WR y /RD

En teoría, cuando el Z80 quiere escribir o leer en la memoria, activa las señales /MREQ y /WR o /RD segun corresponda.
Cuando quiere escribir o leer a un puerto, activa /IOREQ y /WR o /RD.

Repasando la hoja de temporizaciones del Z80, deduzco que tanto /RD como /WR, solo se activan junto a /MREQ o /IOREQ, por lo tanto, si se activa /WR O /RD, podemos deducir si /IOREQ está activa si /MREQ esta inactiva.

¿Funcionaría o no?

saludos

Login or register to post comments

By Miguel_Noe

Champion (442)

Miguel_Noe's picture

29-11-2013, 11:15

Ole! Ole! Un tema interesante.
Quieres cambiar una señal por otro, no?
Puede funcionar.
Prodrias juntar rd y wr ,para verificar...no se si me explico.

By nanochess

Master (218)

nanochess's picture

30-11-2013, 04:10

Creo que puede dar falsos positivos en ciertos casos como el reconocimiento de interrupción, el manejo de HALT y algunas instrucciones extendidas como LDIR que emplean clocks del procesador para incrementar/decrementar los registros.

Vale la pena intentar, tal vez sea aceptable para tus propósitos.

By mohai

Paladin (829)

mohai's picture

30-11-2013, 16:41

@Miguel_Noe:
Sé a lo que te refieres.

Hay que aprovechar que solo una de ellas (/RD o /WD) puede estar activa a la vez.
Para saber si alguna de estas señales está activa, creo que con conectarlas a una puerta AND bastaría.
La salida estaría a 0 cuando una de ellas es 0.

By mohai

Paladin (829)

mohai's picture

30-11-2013, 17:04

@nanochess:

Podría ser que no funcionara 100%. Tengo mis dudas, porque en la documentación de Zilog no queda muy claro.
Lo que sí entiendo es que /MREQ siempre se activa cuando se quiere leer/escribir/refrescar la DRAM.

Mi idea es coger un cartucho ROM o similar y añadirle RAM y un mapper para hacer una ampliación con mapper de manera más o menos sencilla, pero el problema es que los cartuchos de juegos normalmente no tienen la señal /IOREQ.