Tutorial de montaje del Kit ZX Dandanator! Mini

Cursos, reparaciones, fichas, tutoriales, etc.

Moderador: Fundadores

Avatar de Usuario
Australia dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3716
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Has thanked: 17 times
Been thanked: 242 times
Contactar:

Re: Tutorial de montaje del Kit ZX Dandanator! Mini

Mensaje por dandare » 01 Jul 2016, 01:27

Enhorabuena! Buen montaje :)
Imagen
Imagen

Avatar de Usuario
España_Castilla_la_Mancha shikitin
Demonio segundo orden
Demonio segundo orden
Mensajes: 1294
Registrado: 04 Abr 2013, 00:52
Ubicación: En un lugar de la mancha...
Has thanked: 99 times
Been thanked: 40 times
Contactar:

Re: Tutorial de montaje del Kit ZX Dandanator! Mini

Mensaje por shikitin » 01 Jul 2016, 01:34

dandare escribió:Enhorabuena! Buen montaje :)
Gracias :)

Pues si, creo que voy a probar la opcion 1 y mirar como se hace, no consigo cogerle el truquillo, quizas sea el tacto del pulsador.
Creo que seria buena opcion pulsar los 2 botones para que saliera el menu.
Mañana lo miro, ahora es tiempo de dejarlo ya. B-)

Avatar de Usuario
España_Castilla_la_Mancha shikitin
Demonio segundo orden
Demonio segundo orden
Mensajes: 1294
Registrado: 04 Abr 2013, 00:52
Ubicación: En un lugar de la mancha...
Has thanked: 99 times
Been thanked: 40 times
Contactar:

Re: Tutorial de montaje del Kit ZX Dandanator! Mini

Mensaje por shikitin » 01 Jul 2016, 01:37

Se me olvidaba, estoy encantado con la placa, de tamaño: perfecto. Cuando tenga otro rato monto la otra y la meto en su cajita.
Buen trabajo.

Avatar de Usuario
España_Comunidad_Valenciana flopping
Fundador
Fundador
Mensajes: 9770
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Has thanked: 2 times
Been thanked: 332 times
Contactar:

Re: Tutorial de montaje del Kit ZX Dandanator! Mini

Mensaje por flopping » 01 Jul 2016, 08:54

Es que esa cajita era el tamaño ideal de los interfaces de la epoca, y aunque parezca pequeña, bien metido caben muchas cosas, jejejeejeje.
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide que padezco.
(C) 1982-2021, 39 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Avatar de Usuario
Australia dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3716
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Has thanked: 17 times
Been thanked: 242 times
Contactar:

Re: Tutorial de montaje del Kit ZX Dandanator! Mini

Mensaje por dandare » 01 Jul 2016, 10:15

shikitin escribió:
dandare escribió:Enhorabuena! Buen montaje :)
Gracias :)

Pues si, creo que voy a probar la opcion 1 y mirar como se hace, no consigo cogerle el truquillo, quizas sea el tacto del pulsador.
Creo que seria buena opcion pulsar los 2 botones para que saliera el menu.
Mañana lo miro, ahora es tiempo de dejarlo ya. B-)
Estupendo. Asumiendo que tienes el compilador sjasmplus 1.0.6 para dos o superior (funciona bien en dosbox):

Tienes que irte a esta parte del código, está casi al final, antes de las constantes y las variables

Código: Seleccionar todo

; ----------------------------------------------------------------------------------------
; INITEEPVAR - Init PIC Eeprom Vars for boot options and Button Behaviour	
; ----------------------------------------------------------------------------------------
INITEEPVARS:LD A, 41					; Special Command - Store Boot Bank
			LD D, 1						; Bank 1 - Dandanator
			LD E, 0						; On normal Boot (no buttons)
			CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms

		 	LD A, 41					; Special Command - Store Boot Bank
			LD D, 32					; Bank 32 - Extra Rom
			LD E, 1						; On switch 1 pressed	
	 		CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms

			LD A, 41					; Special Command - Store Boot Bank
			LD D, 33					; Bank 33 - Internal Rom
			LD E, 2						; On switch 2 pressed	
	 		CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms

			LD A, 49					; Special Command - Command Allow on Extra Bank
			LD D, 1						; Bank 1 - Dandanator ROM - Effectively disabling extra rom 1 commands
			LD E, 1						; Position 1 (2 positions are checked)	
	 		CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms	 

			LD A, 49					; Special Command - Command Allow on Extra Bank
			LD D, 1						; Bank 1 - Dandanator ROM - Effectively disabling extra rom 2 commands
			LD E, 2						; Position 2 (2 positions are checked)	
	 		CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms

			LD A, 42					; Select Button 1 short press as Reset
			LD D, 1						; Bank 1 Unused for this action
			LD E, 3						; 3 is Reset and short
			CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms
			
			LD A, 42					; Select Button 1 long press as Return to internal ROM
			LD D, 33					; Bank 33 - Internal
			LD E, 9						; 9 is Reset Selecting Bank & Long
			CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms
			
			LD A, 42					; Select Button 1 Double press as Launch Dandanator Menu
			LD D, 1						; Bank 1 - Dandanator
			LD E, 17					; 17 is Reset Selecting Bank & Double
			CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms
			
			LD A, 43					; Select Button 2 short press as NMI
			LD D, 1						; Bank 1 Unused for this action
			LD E, 4						; 4 is NMI
			CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms

			RET
; ----------------------------------------------------------------------------------------
Y cambiar el funcionamiento del botón 1 y/o el botón 2 (al final, comandos 42 y 43). El sistema no está preparado para detectar pulsación de los dos botones a la vez. Lo incluiré en la siguiente versión del código pic.

Estos son los comandos para cambiar el funcionamiento de los botones (la serie de tres números que tienes que mandar:

Código: Seleccionar todo

//Special Command 42   : Modify Switch 1 Behaviour
//                      : Data 1 : Bank Number (1-33)
//                      : Data 2 : Behaviour + Pulse Type
//                               : bits 0..2 - Behavior Value / Detection window multiplier n*50ms
//                                           - 0 : Disable
//                                           - 1 : Enable as Select ROM n + RESET
//                                           - 2 : Enable as ROM n + NMI
//                                           - 3 : Enable as RESET
//                                           - 4 : Enable as NMI
//                                           - 5 : Lock Commands
//                                           - 6 : Disable Commands
//                                           - 7 : Enable as Select ROM n + RESET + Enable & Unlock Commands
//                               : bit 3..4  - Pulse Type Value
//                                           - 0 : Short Click
//                                           - 1 : Long Click
//                                           - 2 : Double Click
//                                           - 3 : Double Click Detection window (50ms intervals)
//                               : bits 5..7 - Reserved MUST be 0 
//--------------------------------------------------------------
// Special Command 43   : Modify Switch 2 Behaviour
//                      : Data 1 : Bank Number (1-33)
//                      : Data 2 : Behaviour + Pulse Type
//                               : bits 0..2 - Behavior Value
//                                           - 0 : Disable
//                                           - 1 : Enable as Select ROM n + RESET
//                                           - 2 : Enable as ROM n + NMI
//                                           - 3 : Enable as RESET
//                                           - 4 : Enable as NMI
//                                           - 5 : Lock Commands
//                                           - 6 : Disable Commands
//                                           - 7 : Enable as Select ROM n + RESET + Enable & Unlock Commands
//                               : bit 3..4  - Pulse Type Value (note only switch 1 responds to long/double click)
//                                           - 0 : Short Click
//                                           - 1 : Reserved
//                                           - 2 : Reserved
//                                           - 3 : Reserved
//                               : bits 5..7 - Reserved MUST be 0 
//--------------------------------------------------------------
Puedes, por ejemplo usar un comando 43,1,1 para que el segundo botón llame al menú (sustituye el código que hay ahora para el segundo botón)
O un 42, 1, 31 para aumentar la ventana de detección del doble click del botón 1 a 350ms (código nuevo, por defecto son 200ms) o un 42,1,9 para hacer que el botón 1, pulsación larga, arranque el menú del Dandanator (sustituye el código de long press del botón 1)

Luego, con el código compilado, que ocupará 4k, cambias los primeros 4ks del romset y ya está. Si quieres que el cambio te valga para todos los romsets que hagas, ve a la carpeta resources del generador de Roms y sustituye el fichero DDNTR....ROM por el que acabas de compilar (debes usar el mismo nombre de fichero)

Si ves que esto es mucho lío, dímelo y te digo que bytes del romset tienes que cambiar y por qué valores, con un editor hexadecimal, para que funcione como quieres.

A por ello! :-]
Imagen
Imagen

Avatar de Usuario
España_Castilla_la_Mancha shikitin
Demonio segundo orden
Demonio segundo orden
Mensajes: 1294
Registrado: 04 Abr 2013, 00:52
Ubicación: En un lugar de la mancha...
Has thanked: 99 times
Been thanked: 40 times
Contactar:

Re: Tutorial de montaje del Kit ZX Dandanator! Mini

Mensaje por shikitin » 01 Jul 2016, 12:01

dandare escribió:
shikitin escribió:
dandare escribió:Enhorabuena! Buen montaje :)
Gracias :)

Pues si, creo que voy a probar la opcion 1 y mirar como se hace, no consigo cogerle el truquillo, quizas sea el tacto del pulsador.
Creo que seria buena opcion pulsar los 2 botones para que saliera el menu.
Mañana lo miro, ahora es tiempo de dejarlo ya. B-)
Estupendo. Asumiendo que tienes el compilador sjasmplus 1.0.6 para dos o superior (funciona bien en dosbox):

Tienes que irte a esta parte del código, está casi al final, antes de las constantes y las variables

Código: Seleccionar todo

; ----------------------------------------------------------------------------------------
; INITEEPVAR - Init PIC Eeprom Vars for boot options and Button Behaviour	
; ----------------------------------------------------------------------------------------
INITEEPVARS:LD A, 41					; Special Command - Store Boot Bank
			LD D, 1						; Bank 1 - Dandanator
			LD E, 0						; On normal Boot (no buttons)
			CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms

		 	LD A, 41					; Special Command - Store Boot Bank
			LD D, 32					; Bank 32 - Extra Rom
			LD E, 1						; On switch 1 pressed	
	 		CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms

			LD A, 41					; Special Command - Store Boot Bank
			LD D, 33					; Bank 33 - Internal Rom
			LD E, 2						; On switch 2 pressed	
	 		CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms

			LD A, 49					; Special Command - Command Allow on Extra Bank
			LD D, 1						; Bank 1 - Dandanator ROM - Effectively disabling extra rom 1 commands
			LD E, 1						; Position 1 (2 positions are checked)	
	 		CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms	 

			LD A, 49					; Special Command - Command Allow on Extra Bank
			LD D, 1						; Bank 1 - Dandanator ROM - Effectively disabling extra rom 2 commands
			LD E, 2						; Position 2 (2 positions are checked)	
	 		CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms

			LD A, 42					; Select Button 1 short press as Reset
			LD D, 1						; Bank 1 Unused for this action
			LD E, 3						; 3 is Reset and short
			CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms
			
			LD A, 42					; Select Button 1 long press as Return to internal ROM
			LD D, 33					; Bank 33 - Internal
			LD E, 9						; 9 is Reset Selecting Bank & Long
			CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms
			
			LD A, 42					; Select Button 1 Double press as Launch Dandanator Menu
			LD D, 1						; Bank 1 - Dandanator
			LD E, 17					; 17 is Reset Selecting Bank & Double
			CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms
			
			LD A, 43					; Select Button 2 short press as NMI
			LD D, 1						; Bank 1 Unused for this action
			LD E, 4						; 4 is NMI
			CALL SENDSPCMD				; Send Special Command
			CALL LONGSPCONF				; Confirm Command and wait 5ms

			RET
; ----------------------------------------------------------------------------------------
Y cambiar el funcionamiento del botón 1 y/o el botón 2 (al final, comandos 42 y 43). El sistema no está preparado para detectar pulsación de los dos botones a la vez. Lo incluiré en la siguiente versión del código pic.

Estos son los comandos para cambiar el funcionamiento de los botones (la serie de tres números que tienes que mandar:

Código: Seleccionar todo

//Special Command 42   : Modify Switch 1 Behaviour
//                      : Data 1 : Bank Number (1-33)
//                      : Data 2 : Behaviour + Pulse Type
//                               : bits 0..2 - Behavior Value / Detection window multiplier n*50ms
//                                           - 0 : Disable
//                                           - 1 : Enable as Select ROM n + RESET
//                                           - 2 : Enable as ROM n + NMI
//                                           - 3 : Enable as RESET
//                                           - 4 : Enable as NMI
//                                           - 5 : Lock Commands
//                                           - 6 : Disable Commands
//                                           - 7 : Enable as Select ROM n + RESET + Enable & Unlock Commands
//                               : bit 3..4  - Pulse Type Value
//                                           - 0 : Short Click
//                                           - 1 : Long Click
//                                           - 2 : Double Click
//                                           - 3 : Double Click Detection window (50ms intervals)
//                               : bits 5..7 - Reserved MUST be 0 
//--------------------------------------------------------------
// Special Command 43   : Modify Switch 2 Behaviour
//                      : Data 1 : Bank Number (1-33)
//                      : Data 2 : Behaviour + Pulse Type
//                               : bits 0..2 - Behavior Value
//                                           - 0 : Disable
//                                           - 1 : Enable as Select ROM n + RESET
//                                           - 2 : Enable as ROM n + NMI
//                                           - 3 : Enable as RESET
//                                           - 4 : Enable as NMI
//                                           - 5 : Lock Commands
//                                           - 6 : Disable Commands
//                                           - 7 : Enable as Select ROM n + RESET + Enable & Unlock Commands
//                               : bit 3..4  - Pulse Type Value (note only switch 1 responds to long/double click)
//                                           - 0 : Short Click
//                                           - 1 : Reserved
//                                           - 2 : Reserved
//                                           - 3 : Reserved
//                               : bits 5..7 - Reserved MUST be 0 
//--------------------------------------------------------------
Puedes, por ejemplo usar un comando 43,1,1 para que el segundo botón llame al menú (sustituye el código que hay ahora para el segundo botón)
O un 42, 1, 31 para aumentar la ventana de detección del doble click del botón 1 a 350ms (código nuevo, por defecto son 200ms) o un 42,1,9 para hacer que el botón 1, pulsación larga, arranque el menú del Dandanator (sustituye el código de long press del botón 1)

Luego, con el código compilado, que ocupará 4k, cambias los primeros 4ks del romset y ya está. Si quieres que el cambio te valga para todos los romsets que hagas, ve a la carpeta resources del generador de Roms y sustituye el fichero DDNTR....ROM por el que acabas de compilar (debes usar el mismo nombre de fichero)

Si ves que esto es mucho lío, dímelo y te digo que bytes del romset tienes que cambiar y por qué valores, con un editor hexadecimal, para que funcione como quieres.

A por ello! :-]
Juer, haces que las cosas parezcan taaaan faciles que hasta un negao como yo pueda hacer avances en esto. :o :o :)
Conforme vaya teniendo tiempo me pongo en ello.
Gracias!

Avatar de Usuario
España_Castilla_la_Mancha shikitin
Demonio segundo orden
Demonio segundo orden
Mensajes: 1294
Registrado: 04 Abr 2013, 00:52
Ubicación: En un lugar de la mancha...
Has thanked: 99 times
Been thanked: 40 times
Contactar:

Re: Tutorial de montaje del Kit ZX Dandanator! Mini

Mensaje por shikitin » 01 Jul 2016, 12:28

Vale, he creado la ROM de 4k, la he insertado en tu romset y al comparar el resultado en hexadecimal me da tan solo una diferencia en un bit.
Creo que he dado de lleno. :D Ahora cuando pueda grabo el nuevo romset y esta siesta lo pruebo.
Por si alguien le interesa, he cambiado el segundo boton por su funcion de nmi original a menu. Si alguien lo quiere (deespues de probarlo, claro) que lo pida y lo voy pasando.

Avatar de Usuario
Australia dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3716
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Has thanked: 17 times
Been thanked: 242 times
Contactar:

Re: Tutorial de montaje del Kit ZX Dandanator! Mini

Mensaje por dandare » 01 Jul 2016, 15:10

Estupendo Shikitin! y gracias por el comentario :) La verdad es que o lo hago así de claro o el que no se entera soy yo :D

Te deberían dar cambios en 2 bits de un byte ;) que pasa de ser un 4 (00000100) a ser un 1 (00000001). Espera que miro y te digo que byte es.... El 0x078E del Romset :)
Imagen
Imagen

Avatar de Usuario
España_Castilla_la_Mancha shikitin
Demonio segundo orden
Demonio segundo orden
Mensajes: 1294
Registrado: 04 Abr 2013, 00:52
Ubicación: En un lugar de la mancha...
Has thanked: 99 times
Been thanked: 40 times
Contactar:

Re: Tutorial de montaje del Kit ZX Dandanator! Mini

Mensaje por shikitin » 01 Jul 2016, 15:25

dandare escribió:Estupendo Shikitin! y gracias por el comentario :) La verdad es que o lo hago así de claro o el que no se entera soy yo :D

Te deberían dar cambios en 2 bits de un byte ;) que pasa de ser un 4 (00000100) a ser un 1 (00000001). Espera que miro y te digo que byte es.... El 0x078E del Romset :)
Efectivamente, del 4 al 1. :D
Acabo de probarlo en una placa 6a y va de luxe, con el izquierdo tengo reset normal, desactivacion con pulsacion larga y rom adicional. Y con el derecho tengo el menu, ahora esta en ver como meto el nmi.
Seguiremos informando. :D

Edito para añadir captura de la diferencia, me ha dado mucha alegria que todo funcionase a la primera :D :
2016-07-01 (2).jpg
2016-07-01 (2).jpg (127.95 KiB) Visto 476 veces
Última edición por shikitin el 01 Jul 2016, 19:51, editado 1 vez en total.

Avatar de Usuario
España_Castilla_y_León airsoft
Seguidor infernal
Seguidor infernal
Mensajes: 45
Registrado: 25 Feb 2015, 12:41
Been thanked: 1 time
Contactar:

Re: Tutorial de montaje del Kit ZX Dandanator! Mini

Mensaje por airsoft » 01 Jul 2016, 15:29

Una preguntica...tengo el programador TL866A que compré hace unos meses con montón de adaptadores, con el puedo programar la PLCC32, pero he mirado y no veo que se pueda programar la PIC...al menos en el programa (miniprog 6.5) del aparato no se puede seleccionar ese modelo de PIC...a no ser que haya alguno "compatible" y no sepa encontrarlo. ¿alguien sabe si se puede con otro programa? ... y en caso negativo, ¿con que programador (simple y barato) se podria programar ? ...en caso de que necesitase hacerlo en un futuro por alguna característica nueva.
Thank's

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado