I'm disassembling a simple Z80 program and can't for the life of me work out how to - successfully - specify a user-defined offset.

I have a line of code as:

ld de, #0x6058

and FTR, this address lies outside the address range of defined segments, however my 'suspiciousness' range is set to $0000-$FFFF.

Now I want to display this as the offset from an address label, ie.

ld de, #screen2-15424

where, FWIW, screen2 is the named address 0x9C98.

So I try to change the operand to a user-defined offset, TYPE=OFF16, BASE=screen2 and DELTA=0 (target automatically calculated). However the result is the same (original) line but with 0x6058 in RED.

Nothing I try seems to produce what I want, other than a MANUAL operand type which works but is prone to human error because there is no automatic check. What am I missing here? I would think that this is basic functionality that most people would want? The only examples I can find are complex C-code decompilations on Intel/ARM architecture.


  • You can add a segment for this, so it will not be red and it will be xref-able. Look also here reverseengineering.stackexchange.com/questions/6651/… – w s Oct 8 '15 at 14:28
  • Doesn't help. In fact I've got similar examples that do resolve to addresses within defined segments. Same issue, I can't get it to display 'screen2+/-offset'. – Mark McDougall Oct 9 '15 at 1:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.