
Tutorial de montaje del Kit ZX Dandanator! Mini
Moderador: Fundadores
- shikitin
- Demonio segundo orden
- Mensajes: 1319
- Registrado: 04 Abr 2013, 00:52
- Ubicación: En un lugar de la mancha...
- Has thanked: 11 times
Re: Tutorial de montaje del Kit ZX Dandanator! Mini
Graciasdandare escribió:Enhorabuena! Buen montaje

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.

- shikitin
- Demonio segundo orden
- Mensajes: 1319
- Registrado: 04 Abr 2013, 00:52
- Ubicación: En un lugar de la mancha...
- Has thanked: 11 times
Re: Tutorial de montaje del Kit ZX Dandanator! Mini
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.
Buen trabajo.
- flopping
- Fundador
- Mensajes: 9918
- Registrado: 29 Mar 2013, 15:26
- Ubicación: Valencia
- Been thanked: 83 times
- Contactar:
Re: Tutorial de montaje del Kit ZX Dandanator! Mini
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.
(C) 1982-2023, 41 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".
Mi juego, que puedes descargar desde aqui
(C) 1982-2023, 41 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".
Mi juego, que puedes descargar desde aqui
- dandare
- Hermano de Lucifer
- Mensajes: 3719
- Registrado: 09 Feb 2016, 15:09
- Ubicación: I Register
- Been thanked: 3 times
Re: Tutorial de montaje del Kit ZX Dandanator! Mini
Estupendo. Asumiendo que tienes el compilador sjasmplus 1.0.6 para dos o superior (funciona bien en dosbox):shikitin escribió:Graciasdandare escribió:Enhorabuena! Buen montaje![]()
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.
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
; ----------------------------------------------------------------------------------------
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
//--------------------------------------------------------------
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!
![Feliz :-]](./images/smilies/sc_jcheesy.gif)
- shikitin
- Demonio segundo orden
- Mensajes: 1319
- Registrado: 04 Abr 2013, 00:52
- Ubicación: En un lugar de la mancha...
- Has thanked: 11 times
Re: Tutorial de montaje del Kit ZX Dandanator! Mini
Juer, haces que las cosas parezcan taaaan faciles que hasta un negao como yo pueda hacer avances en esto.dandare escribió:Estupendo. Asumiendo que tienes el compilador sjasmplus 1.0.6 para dos o superior (funciona bien en dosbox):shikitin escribió:Graciasdandare escribió:Enhorabuena! Buen montaje![]()
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.
Tienes que irte a esta parte del código, está casi al final, antes de las constantes y las variables
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.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 ; ----------------------------------------------------------------------------------------
Estos son los comandos para cambiar el funcionamiento de los botones (la serie de tres números que tienes que mandar:
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)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 //--------------------------------------------------------------
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!



Conforme vaya teniendo tiempo me pongo en ello.
Gracias!
- shikitin
- Demonio segundo orden
- Mensajes: 1319
- Registrado: 04 Abr 2013, 00:52
- Ubicación: En un lugar de la mancha...
- Has thanked: 11 times
Re: Tutorial de montaje del Kit ZX Dandanator! Mini
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.
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.
Creo que he dado de lleno.

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.
- dandare
- Hermano de Lucifer
- Mensajes: 3719
- Registrado: 09 Feb 2016, 15:09
- Ubicación: I Register
- Been thanked: 3 times
Re: Tutorial de montaje del Kit ZX Dandanator! Mini
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 
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 


Te deberían dar cambios en 2 bits de un byte


- shikitin
- Demonio segundo orden
- Mensajes: 1319
- Registrado: 04 Abr 2013, 00:52
- Ubicación: En un lugar de la mancha...
- Has thanked: 11 times
Re: Tutorial de montaje del Kit ZX Dandanator! Mini
Efectivamente, del 4 al 1.dandare escribió:Estupendo Shikitin! y gracias por el comentarioLa verdad es que o lo hago así de claro o el que no se entera soy yo
Te deberían dar cambios en 2 bits de un byteque pasa de ser un 4 (00000100) a ser un 1 (00000001). Espera que miro y te digo que byte es.... El 0x078E del Romset

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.

Edito para añadir captura de la diferencia, me ha dado mucha alegria que todo funcionase a la primera

No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Última edición por shikitin el 01 Jul 2016, 19:51, editado 1 vez en total.
- airsoft
- Seguidor infernal
- Mensajes: 48
- Registrado: 25 Feb 2015, 12:41
Re: Tutorial de montaje del Kit ZX Dandanator! Mini
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
Thank's