So here is the "dream" I have a 256 wide map that I scroll (and wrap) but I want a fixed HUD down the bottom. This register gave me hope to being able to pull it off easily.
So Normally it is set to E0
Then on the row before the HUD I change it to $E0-offset ( yes this won't work for the wrap case and I will need to do some to handle it ) Then on the first row of the HUD I change it to $00 and thus it starts grabbing the screen as per normal 32 wide. And thus the HUD keeps the same place in RAM, all 4 lines of the HUD fit on "1 line" and I save a bit of RAM.
However it only seems to affect the Last row. no matter how far I up I move my "splits". I've only tested on Z64K as I would have to adjust my split timings to test on hardware. But does it latch this value internally and only refresh it on the last row?
I can't guarantee I've got this correctly emulated in Z64K at the moment. This is something I need to still test on real hardware. I have plans to include an Address Increment Per Row test in my VDC split program.
Currently in Z64K the Address Increment Per row is applied to the memory pointers after buffering the character and attribute data for each row. For bitmap mode this is applied every line for the bitmap data.
If you end up testing on real hardware I'd be interested in your results compared to Z64K.