An intriguing LCD option is
this 6-digit display with 49 individually pin-addressable segments. Apparently it will work with 3-5V applied in either polarity relative to the common pin, making it very easy to drive from decoder circuitry, whether active-low or active-high. Six digits is enough to show a 16-bit address and 8-bit data value together. An extra 2-digit display could be added to accommodate 24-bit addressing.
Since with a diode-logic ROM there is only feasibly one decoder, it's necessary to multiplex the input nybbles and output segments through it. A 3-bit free-running counter can cycle through the digits. For a simple display application, storing the nybbles in a pair of 4x4 registers (eg. 74HC670) means that only one quad 2-way multiplexer is needed on the input side. On the output side, six transparent 8-bit latches, one per digit, can be addressed through a 3-to-8 decoder. The LCD is then continuously driven and flicker-free. Loading data into the register file is left as an exercise for the reader; a magnitude comparator may prove useful.
In my case, I want to store the address in a set of presettable counters, so that it can auto-increment for rapid bootloader entry. I might as well use two further presettable counters for the data byte, but with the increment lines tied inactive. I thus need four 8-to-1 multiplexers on the input side, instead of one quad 2-way. On the upside, data input from a keypad may be easier to arrange with this setup; the nybble from the keypad decoder can be broadcast to all the counters' inputs, and the preset line for the correct one toggled through a debounce circuit.
Most LED 7-segment displays have a common pin per digit and segment pins that are common to all digits in the module, forming a matrix. In such cases, the transparent latches on the output side can be dispensed with in favour of a simple bus driver, and the output of the 3-to-8 decoder can be fed directly to the digit-common pins.