Al igual que ocurria con las instr. de cargar (ld), es imposible hacer cp a,bc por la misma razon: a es un registro=1 byte ; bc son 2 registros=2 bytes
9.1.
A cada call le corresponde un ret. Si haces un call @comprobaritem, la rutina comprobaritem debe acabar con un ret, y no con jp ACABAR. Si quieres estructurarlo asi, debes poner jp comprobar item, pero lo que yo te decia era meter todo el tocho entre el push hl y ACABAR, ahorrandote dos saltos. Pero si tu lo ves mejor de la otra manera no importa.
@miturno debe ser asi:
ld a,$LiechiBerryID
cp a,[hl] ; compara a con el contenido de hl, es decir, el contenido de battlemonitem
jr nz, @end ; una forma de hacer lo mismo empleando un solo salto! (siempre y cuando @LevelAttack venga inmediatamente despues)
Nota como cp a,hl es una instruccion imposible porque estas comparando un byte (a) con dos bytes (hl=CB0D). Pero al hacer cp a,[hl] estas tomando el contenido de la direccion CB0D, que sera un numero de 1 byte.