private void considerHlAsData(int currentAddress, CPUState s) {
    if((s.rMask[H] & s.rMask[L]) == 0xFF) {
      int dataAddress;
      if(s.r[H] < 0x40)
        dataAddress = ((s.r[H]*0x100) | s.r[L]);
      else if(s.r[H] < 0x80 && currentAddress > 0x4000)
        dataAddress = (currentAddress/0x4000-1)*0x4000 + ((s.r[H]*0x100) | s.r[L]);
      else if(s.r[H] < 0x80 && s.loadedBank > 0)
        dataAddress = (s.loadedBank-1)*0x4000 + ((s.r[H]*0x100) | s.r[L]);
      else {
        return;
      }

      // set up indirect labels
      if (dfs.rom.label[dataAddress] == null)
        dfs.rom.labelType[dataAddress] = ROM.LABEL_ABSOLUTE;
      if(s.rLoadedFromAddress[H] == s.rLoadedFromAddress[L] && s.rLoadedFromAddress[H] != -1)
        dfs.rom.payloadAsAddress[s.rLoadedFromAddress[H]] = dataAddress;
    }
  }