Darth_Fistro
|
|
« Respuesta #15 : 24 de Marzo de 2007, 10:26:38 am » |
|
Gracias. Regla de oro entonces: no pasar de la 62000 y listo
|
|
|
En línea
|
MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
|
|
|
Darth_Fistro
|
|
« Respuesta #16 : 11 de Abril de 2007, 03:36:22 pm » |
|
A ver, tenía entendido que estas instrucciones son equivalentes: ld a,[NUM] inc a ld [NUM],a ld hl,NUM inc [hl] y sin embargo la primera suma correctamente y la segunda no. ¿Qué error de borrico mayúsculo estoy cometiendo, please?
|
|
|
En línea
|
MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
|
|
|
pitpan
|
|
« Respuesta #17 : 11 de Abril de 2007, 03:48:18 pm » |
|
Jarl! El error tiene que estar en otro lugar, porque el código es funcionalmente equivalente: incrementar en uno el contenido de la posición de memoria NUM. Pregunta: ¿estás usando asMSX? Ten en cuenta que la sintaxis que usa para indirecciones no es usada por otros ensambladores, que prefieren usar los paréntesis normales (sintaxis oficial).
|
|
|
En línea
|
|
|
|
jltursan
|
|
« Respuesta #18 : 11 de Abril de 2007, 05:14:50 pm » |
|
Pues equivalentes, equivalentes no lo son del todo..., basicamente la diferencia es que en la segunda A no queda inicializado (¿no lo tratarás de usarlo después verdad? ) y que los flags no se ven alterados, por lo que no valdran chequeos del flag C y tal... Por lo demás en ambas incrementas [NUM] fijo, fijo.
|
|
|
En línea
|
Doom dee doom dee doom
|
|
|
pitpan
|
|
« Respuesta #19 : 11 de Abril de 2007, 05:35:09 pm » |
|
JL, déjame que disienta: INC [HL] no afecta al acumulador, registro A, pero sí que actualiza el registro de banderas de estado F, por lo que sí podrás realizar todo tipo de comparaciones del tipo Z, NZ, C, NC, etc. Las que no actualizan las banderas son las instrucciones INC/DEC con registros de 16 bits, es decir, INC/DEC HL/BC/DE. A todos los efectos, INC/DEC [HL] tiene consideración de 8 bits, por lo que sí que actualiza banderas. Y sigo sin saber qué puedes estar liando, Juanma.
|
|
|
En línea
|
|
|
|
Jon_Cortazar
|
|
« Respuesta #20 : 11 de Abril de 2007, 05:37:41 pm » |
|
Y sigo sin saber qué puedes estar liando, Juanma. Es que quién puede escrutar los misterios de la mente del Darth?
|
|
|
En línea
|
Jon Cortázar Abraido (aka El Viejo Archivero) RELEVO Videogames [Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.] [pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
|
|
|
SapphiRe
Visitante
|
|
« Respuesta #21 : 11 de Abril de 2007, 05:39:36 pm » |
|
Pues equivalentes, equivalentes no lo son del todo..., basicamente la diferencia es que en la segunda A no queda inicializado (¿no lo tratarás de usarlo después verdad? ) y que los flags no se ven alterados, por lo que no valdran chequeos del flag C y tal... Por lo demás en ambas incrementas [NUM] fijo, fijo. En la primera HL no se modifica, pero A si. Y en la segunda modificas HL, pero no A. Todo depende de lo que hagas después.
|
|
|
En línea
|
|
|
|
jltursan
|
|
« Respuesta #22 : 11 de Abril de 2007, 08:17:11 pm » |
|
INC [HL] no afecta al acumulador, registro A, pero sí que actualiza el registro de banderas de estado F, Ups, pues es verdad JL> <Z80 Pues ya sólo queda la opción de que el registro A se use a continuación esperando contener el valor en cuestión....
|
|
|
En línea
|
Doom dee doom dee doom
|
|
|
Darth_Fistro
|
|
« Respuesta #23 : 11 de Abril de 2007, 09:10:06 pm » |
|
Buenooo...la polémica de los INC No, Edu, no hago nada raro. El fallo estará en otro sitio, pero no sé donde, porque ese es exactamente el código que uso y luego no intento comparar con A ni nada de eso, ni leo banderas, ni nada. He vuelto a la opción del acumulador, y funciona. Ya veré luego de qué se trata. Estoy liado con la equivalencia que me propuso Jon: representación 2D-representación 3D y tenía problemas al renderizar en 3D, pero ahora todo resuelto. Tengo que ver cómo puedo hacer saltar al personaje. ¡Gracias!
|
|
|
En línea
|
MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
|
|
|
Darth_Fistro
|
|
« Respuesta #24 : 13 de Abril de 2007, 09:25:26 am » |
|
Ya era raro que ayer no tuviera una duda técnica, así que haré dos preguntillas para recuperar el tiempo perdido -Después de 25 años con el MSX... ¿alguient puede explicarme para qué puñetas sirve el color 0? -¿Puede usarse en screen 2 una tabla de colores de 768 bytes como en screen 1? ¿Algún cambio de BASE o cosas raras del estilo? ¡Gracias!
|
|
|
En línea
|
MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
|
|
|
Dioniso
Visitante
|
|
« Respuesta #25 : 13 de Abril de 2007, 09:42:17 am » |
|
-Después de 25 años con el MSX... ¿alguient puede explicarme para qué puñetas sirve el color 0? No estoy muy seguro pero creo que hace de color transparente cuando le metes vídeo ... Además coge el color de fondo ... Normalmente es "negro", pero si cargas una imagen con el color azul de fondo creo que ese "negro" se vuelve azul ... Tampoco me echéis mucha cuenta.
|
|
|
En línea
|
|
|
|
Darth_Fistro
|
|
« Respuesta #26 : 13 de Abril de 2007, 12:15:37 pm » |
|
Curioso pues, y misterioso... ¿hasta cuándo seguirá siéndolo? (hasta que alguno de los gurus asome la cabeza por aquí) La verdad es que lo del color 0 no viene bien explicado en los manuales que he visto...
|
|
|
En línea
|
MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
|
|
|
Jon_Cortazar
|
|
« Respuesta #27 : 13 de Abril de 2007, 04:44:37 pm » |
|
El color 0 se puede aplicar a un sprite, para que parezca que no está ahí, pero realmente está. Con lo que las colisiones con dicho sprite aún funcionan, y aún más, puedes usarlo en marcadores de forma estratégica para la ocultación de sprites, ya que también permanece activa la regla del 5º sprite, aunque parezca que el sprite no está (ver Phantomas Saga: Infinity, cuando Phantomas esta muy arriba o muy abajo, parece que Phantomas se esconde tras caracteres, y lo que realmente ocurre es que "sufre" la regla del 5º sprite con sprites situados en layers superiores y de color 0). También es muy útil para hacer parpadear un sprite cuando no quieres alterar su X ni su Y, solo cambiando el byte del color de pronto no es visible... tan solo por las aplicaciones que tiene con los sprites, el hecho de tener un color 0 transparente *mola mucho*
|
|
« Última modificación: 13 de Abril de 2007, 04:49:04 pm por Viejo_archivero »
|
En línea
|
Jon Cortázar Abraido (aka El Viejo Archivero) RELEVO Videogames [Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.] [pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
|
|
|
e_sedes
|
|
« Respuesta #28 : 13 de Abril de 2007, 05:22:20 pm » |
|
El color 0 estaba previsto para mezclar otras fuentes de video con la señal del VDP. De hecho el TMS9918a original tiene un pin para recibir directamente la señal de otro vdp y hacer configuraciones multivdp de manera muy sencilla. El 9929a ya no tiene esa función, y la mezcla de señales ha de hacerse con un circuito externo. Es una pena que no se mantuviese esa funcionalidad y que el MSX no lo integrase en el conector de cartucho, como lo hay para audio. ¿Os imaginais cartuchos con vdp integrado o cosas así? EL resultado podría ser impresionante un saludo.
|
|
|
En línea
|
sempre fun un valente corredor
|
|
|
pitpan
|
|
« Respuesta #29 : 13 de Abril de 2007, 05:50:42 pm » |
|
Pues eso, que todo vale respecto al CERO. - Sprites: el sprite es transparente (invisible) pero sigue ahí. Útil para ocultación y colisiones. - Fondo: el color 0 es equivalente al color del BORDE. Es decir: si cambiais el color del borde, cambiaréis todo lo que esté pintado de color 0 a ese color. El tema de la superimposición sí pasa también por el color 0, pero activando el bit de video externo del VDP. Con el Pioneer Palcom PX7 he hecho algunas pruebas en este sentido y es muuuuuuuuuy divertido experimentar.
|
|
|
En línea
|
|
|
|
|