Página 2 de 2

Re: ld (hl), NN no está permitido en Z80

Publicado: 12 Nov 2019, 11:17
por explorer
Disponiendo de los operadores LOW y HIGH... sí, debería al menos emitir un aviso por realizar LOW de forma predeterminada.

Re: ld (hl), NN no está permitido en Z80

Publicado: 12 Nov 2019, 20:23
por Bubu
robcfg escribió:Yo que tú, aprovechaba y escribía al autor para comentarle el problema.

Si le añade aunque sea un warning, te haces la vida más fácil a ti y probablemente a más gente.



Sí, esto voy a hacer, aunque PASMO es de hace 10 años, nu sé si el autor (Julián) seguirá en el tajo...

Re: ld (hl), NN no está permitido en Z80

Publicado: 13 Nov 2019, 20:02
por jltursan
PASMO sigue siendo muy popular y se usa en muchos proyectos. Igual resulta interesante el que se plantee sacar un parchecillo.

Re: ld (hl), NN no está permitido en Z80

Publicado: 13 Nov 2019, 20:14
por Bubu
Me ha respondido el creador, Julián, con lo siguiente (he omitido los saludos y las gracias varias):

Es un problema del ensamblador Z80 clásico, que usa los paréntesis
tanto para el acceso indexado como para expresiones, y no es fácil
distinguir los usos. Para poder emitir un warning había algún problema
que ahora mismo no recuerdo.

Por estos problemas introduje la posibilidad de usar [ ] en vez de los
paréntesis.

En cuando al LD a, 10000, es que todos los números son de 16 bits, y
las asignaciones a valores de 8 bits simplemente ignoran los bits
altos, y no encontré forma de emitir un warning que no generara mas
falsas alarmas que ayudara.


Por lo que entiendo, en general, no da warnings ni errores porque tenía poblemas de implementación en su desarrollo, pero la verdad es que yo no entiendo bien, una vez teniendo el código fuente en C del ensamblador, nu sé la dificultad que tiene el obtener 16 bits, y al volcarlo en 8 bits pos dé el warning.
Pero bueno, le he agradecido mucho su ensamblador y su respuesta tan pronta.

Re: ld (hl), NN no está permitido en Z80

Publicado: 14 Nov 2019, 19:04
por explorer
Pues tenía que haber generado una advertencia que dijese: «ATENCIÓN: se toma el byte bajo del operando. La instrucción efectiva será LD a, LOW operando»,

De esa manera, además de informar de que se está tomando una parte, ya da una pista para escribir bien.