The port 0FFH is usually the lights on the front panel ( upper left ). It seems that the lights are inverted ( BrainFade ). Light is 0 and not is 1 ??
Easy enough to test. Out a 55 in A and write it to port 0FFH.
So now we have a way to see a value we wrote without using a scope or halting the processor.
Now, as Chuck noted, you can not write to a port sequential ports without using self modifying code ( at least with a 8080, the Z80 has a way ).
If you've booted to some BIOS, there is almost always a know location we can write to that place is the stack. This assumes that that code initialized the stack pointer.
We can move our push our self modifying code to the stack. We can see where the stack is pointed to by copying the stack pointer to a some register or we could pop our code back off the stack and modify it before pushing it back. Either way, we can then have a safe place to write our self modifying code ( mostly, I'll explain later ).
Now, even from EPROM, we have a place to write our self modifying code ( mostly ).
Now we can make a loop that will write to each port address and display that address. If we don't have a scope, we can use a volt meter but we'll need to add a delay so we can react to the delay and read the meter with the 0FFH port.
Another possible ways is that your only looking at the address comparitor and don't have a port that you can observe. We can then make a tight loop there we do a number of say 10 port outputs in a row before we do check the tight loop and then say 100 of these loops before we check the time loop. It might make seen to adjust these time loops to be our 1 second delay ( problem left to the OP ).
What if we don't have a volt meter. Hopefully we have a junk box with a LED and an appropriate resistor. We can put them, in series, from +5V, to the output of the comparitor ( being aware that there may be some tiny glitch
as the data bit are making changes ). To know what a real hit looks like we can use the 0FFH comparitor of the front panel, as a reference.
Now to the 'mostly' part. Some people don't like cluttering up memory space with ROM. Especially ROM or EPROM that is only use once at boot time. It would be nicer if we could remove it from the memory map and have RAM there for our larger BASIC program. We'd like to turn that piece off to recover that space, as RAM. A clever way to do that is to have a flop that when written to at a particular port disables or even can re-enable that ROM. If you stumble onto one of these locations, it can do unpredictable things. ( most sytems don't use this type of stuff but you never know ). Another possible problem is that some ports can cause DMA, like from a disk drive, and accidentally over write your program ( I have such a IMSAI setup. In fact I have no system ROM, on reset it DMAs the first sector into memory. After reset, I just start at RAM address 0 and it loads CP/M with my 100% RAM address. ).
These are all potential I gotchas but unlikely. Still if you are stepping your program through the port and some thing kills it, you may have such a problem.