Buenas! Al cargar para RAM, cuando iniciamos la tabla, queda guardado solamente el byte bajo de las direcciones de las rutinas de atención. Cuando cargamos para ROM funciona bien. Adjunto imágenes de como estamos cargando la tabla y de como queda guardada luego de la inicialización, al usar el debugger. Como podríamos arreglarlo?
Hola,
Ahí lo que pasa es que están guardando en (HL), es decir en el lugar de memoria apuntado por HL. Esta instrucción está implementada solo para guardar un byte en (HL), no guarda el byte alto que iría en (HL+1). Hay otras instrucciones parecidas que sí funcionan guardando ambos bytes: por ejemplo "LD (dir), HL" guarda L en dir y H en dir+1. Podrían hacer algo así:
LD HL, rutint_dl
LD (TABLA_int), HL
Saludos
Julia
Ahí lo que pasa es que están guardando en (HL), es decir en el lugar de memoria apuntado por HL. Esta instrucción está implementada solo para guardar un byte en (HL), no guarda el byte alto que iría en (HL+1). Hay otras instrucciones parecidas que sí funcionan guardando ambos bytes: por ejemplo "LD (dir), HL" guarda L en dir y H en dir+1. Podrían hacer algo así:
LD HL, rutint_dl
LD (TABLA_int), HL
Saludos
Julia
Ahh claro, que despistados.
Muchas gracias!
Muchas gracias!