Quizá me expliqué mal. No quería decir que "JP HL" exista, sino que el mnemónico de "JP (HL)" debería haber sido "JP HL", ya que la instrucción no salta a (HL) (a la dirección de memoria contenida en la dirección de memoria apuntada por HL), sino a HL (la dirección de memoria contenida en HL).
No. Tanto si es JP (HL) como JP HL, salta a la dirección contenida en (HL).
Esto lo usé hace tiempo, para arrancar una rom. Los dos primeros bytes son el indicativo de rom, #41,#42 ( A, B), y los dos siguentes, es la dirección de inicio. O sea que haciendo:
LD HL,#4002
JP (HL)
Arrancamos la rom.
Una rom se arranca sola, por supuesto. Esto era en un cargador de roms especial.
Insisto en que no es así. "JP (HL)" no salta a la dirección contenida en (HL); salta a la dirección contenida en HL (sin indirección).
El ejemplo de código que has puesto no ejectua la dirección contenida en $4002; simplemente salta a $4002.
¿Es posible que el código fuera en realidad "LD HL,($4002) / JP (HL)"?
¿Es posible que el código fuera en realidad "LD HL,($4002) / JP (HL)"?
Si, tienes razón. Así lo hacia.