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

Foro dedicado a la programación en todo tipo de sistemas clásicos.
Avatar de Usuario
explorer
MSX Turbo R
MSX Turbo R
Mensajes: 398
Registrado: 11 May 2014, 17:10
Sistema Favorito: Atari ST
primer_sistema: Atari 800XL/600XL
consola_favorita: Atari 2600
Primera consola: Atari 2600
Ubicación: Valladolid, España
Gracias dadas: 2 veces
Gracias recibidas: 138 veces
Contactar:

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

Mensajepor explorer » 12 Nov 2019, 11:17

Disponiendo de los operadores LOW y HIGH... sí, debería al menos emitir un aviso por realizar LOW de forma predeterminada.

Avatar de Usuario
Bubu
Atari 1040 STf
Atari 1040 STf
Mensajes: 886
Registrado: 04 Abr 2018, 23:10
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Nintendo GameBoy
Gracias dadas: 20 veces
Gracias recibidas: 60 veces

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

Mensajepor Bubu » 12 Nov 2019, 20:23

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...
Si algo funciona... ¡¡NO LO TOQUES!! ¡¡NI DE COÑA!!

Avatar de Usuario
jltursan
Amiga 2500
Amiga 2500
Mensajes: 4028
Registrado: 13 Oct 2006, 19:45
Sistema Favorito: MSX
primer_sistema: Dragon
Ubicación: Serracines, Madrid, España
Gracias dadas: 57 veces
Gracias recibidas: 157 veces
Contactar:

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

Mensajepor jltursan » 13 Nov 2019, 20:02

PASMO sigue siendo muy popular y se usa en muchos proyectos. Igual resulta interesante el que se plantee sacar un parchecillo.

Avatar de Usuario
Bubu
Atari 1040 STf
Atari 1040 STf
Mensajes: 886
Registrado: 04 Abr 2018, 23:10
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Nintendo GameBoy
Gracias dadas: 20 veces
Gracias recibidas: 60 veces

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

Mensajepor Bubu » 13 Nov 2019, 20:14

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.
Si algo funciona... ¡¡NO LO TOQUES!! ¡¡NI DE COÑA!!

Avatar de Usuario
explorer
MSX Turbo R
MSX Turbo R
Mensajes: 398
Registrado: 11 May 2014, 17:10
Sistema Favorito: Atari ST
primer_sistema: Atari 800XL/600XL
consola_favorita: Atari 2600
Primera consola: Atari 2600
Ubicación: Valladolid, España
Gracias dadas: 2 veces
Gracias recibidas: 138 veces
Contactar:

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

Mensajepor explorer » 14 Nov 2019, 19:04

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.


Volver a “Programación”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 11 invitados