Página 7 de 10

Re: Nuevo interface 007 para ZX Spectrum

Publicado: 30 May 2017, 20:16
por wilco2009
dandare escribió:
flopping escribió:Básicamente es un interface de sustitución de rom externa, solo que en vez de sustituir toda la rom, solo sombrea 2k, pero vamos que no tiene nada especial.
Me interesa ver la gestión del momento exacto en el que hace el cambio de ROM :)
A mi tambien me interesaba el tema para ver como gestionaba el tema de la nmi.

Por lo que veo la gestión es bastante más sencilla que en otros interfaces, y solo usa mreq, no usando para nada m1.

Re: Nuevo interface 007 para ZX Spectrum

Publicado: 31 May 2017, 06:35
por alvaroalea
Hablo desde la ignorancia, pero:
- Creo que lo de gestionar M1 es una cosa de las interfaces modernas (divide, etc...) y que en aquella época se tiraba por la calle del medio y no se hilaba tan fino.

Lo de gestionar M1 es para evitar que una NMI ocurra en mitad de dos lecturas de una instruccion y lea la primera parte de la rom original y la segunda parte de la rom del interfaz y se lie ¿no?

Entiendo que en interfaces como el pokeador de microhobby eso no se tenia en cuenta por que la rom siempre estaba paginada, aunque corrías el riesgo de que pasase lo mismo al mover el interruptor para activar la interfaz.

Re: Nuevo interface 007 para ZX Spectrum

Publicado: 31 May 2017, 12:29
por wilco2009
Bueno, pues después de verlo en profundidad las ecuaciones que utiliza son básicamente.

Código: Seleccionar todo

IC2A = ¡(A15+A13+A11)
IC2B = ¡(A14+A12+/MREQ)
IC2C = /ROMCS = IC4A.Q
IC3A = ¡(1)
IC3B = !(IC2A * IC2B * IC4A.Q)
always (posedge (/MREQ) or (negedge /RESET) begin
	if (!/RESET) begin 
		IC4A.Q = 0
end else begin
		IC4A.Q = IC4B.Q 
	end
end

always (negedge (S1) or (negedge /RESET) begin
	if (!/RESET) begin 
		IC4B.Q = 0
end else begin
		IC4B.Q = 1 
	end
end

// Pone a 0 /NMI (y a 1 /ROMCS) en el próximo pulso positivo de /MREQ y ya no se borra hasta el siguiente reset
/NMI  = !(IC4A.Q * IC3A) = !(IC4A.Q) = IC4A./Q

// /CE igual a 0 si se accede a los 4Kb inferiores de la memoria y se ha pulsado S1
/CE = !( ¡(A15+A13+A11)*  ¡(A14+A12+/MREQ)*IC4A.Q)
/CE=!(!A15*!A14*!A13*!A12*!A11*!MREQ)

Re: Nuevo interface 007 para ZX Spectrum

Publicado: 31 May 2017, 12:35
por dandare
El transtape lee m1, al menos el transtape 3. El ramjet3 hace otra cosa igual de válida que es leer el bus de direcciones para la dirección 0x66, que es la de la NMI y ahí mete el cambiazo de la ROM.

Éste utiliza el pulso de MREQ, tengo que ver exactamente qué consecuencias tiene eso, pero ya de entrada no parece que buenas.

Edit: mira, Wilco ya ha destripado el funcionamiento. Gracias Wilco :).
El tema es que en una instrucción de lectura tipo LD A, (nnnn) se producen dos flancos de MREQ, uno en el fetch de la propia instrucción y otro al leer el contenido. Si ese contenido está en ROM, tenemos un fallo. Aún peor es el caso de las instrucciones con prefijo.

Re: Nuevo interface 007 para ZX Spectrum

Publicado: 31 May 2017, 12:38
por wilco2009
Eso estaba viendo, pero bueno, si funcionaba.......

Re: Nuevo interface 007 para ZX Spectrum

Publicado: 02 Jun 2017, 20:44
por alvaroalea
Bueno, creo que ya empiezo a dominar el programa, ahora vamos a empezar a hacer una version mas interesante...
Si alguien tiene interes, he puesto los archivos aqui:
https://github.com/alvaroalea/Interface007

Imagen

Re: Nuevo interface 007 para ZX Spectrum

Publicado: 02 Jun 2017, 21:14
por shikitin
Genial Alvaro!
Imagen
Imagen
Imagen
¿Vamos abriendo la lista?
:D

Re: Nuevo interface 007 para ZX Spectrum

Publicado: 02 Jun 2017, 21:24
por dandare
Alvaro, perdona que acabo de darme cuenta de que no te mandé la librería =) Sorry!

Re: Nuevo interface 007 para ZX Spectrum

Publicado: 03 Jun 2017, 06:20
por alvaroalea
@shikitin: Yo ahora no puedo gestionar eso, ademas esto era solo por practicar, y esta PCB es muy sencilla la puedes hacer con rotulador sin problemas.
quiero hacer una versión mas molona, esa igual si me animo a hacer una conjunta.

@dandare: Nunca es tarde si la dicha es buena, envíamelo!, quiero hacer una librería con los conectores edge macho y hembra, con los del interface II y con los del Dandanator de cartuchos, incluyendo sus modelos 3d y demas, asi que...

Re: Nuevo interface 007 para ZX Spectrum

Publicado: 03 Jun 2017, 10:44
por shikitin
alvaroalea escribió:@shikitin: Yo ahora no puedo gestionar eso, ademas esto era solo por practicar, y esta PCB es muy sencilla la puedes hacer con rotulador sin problemas.
quiero hacer una versión mas molona, esa igual si me animo a hacer una conjunta.
Ok, esperamos a la versión molona ;)
No hay prisa.