Turns out the missing block? Not a bug.
The block shown isn't supposed to be filled by a vertical scroll--up or down.
The reason is that it is in a fill
column, and vertical scroll should only deal with fill
rows.
(The yellow background is just temporary--to show the vertical split).
The reason the block is blank is that on the initial load of the bitmap, I'm only blitting the visible screen, plus one row below--so that I can start my scroll down/scroll up test.
In the real game, I'll blit the entire screen buffer (352x288) so that all the fill areas will have their correct tiles before any scroll.
...
I'm going to squash the scanline/vertical split bug mentioned earlier (now) and then I have to think about how to blit the blocks that remain when a player reverses direction in the middle of a scroll.
Conceptually... because I'm only blitting either one or two blocks per step (horizontal is always just one block), if I get partway into a scroll and reverse the direction, the blocks that didn't get blitted should get blitted.
Maybe I don't have to worry about that, because scrolling partway down and then up, I won't see the fill row for the bottom (that was partially blitted) because the OTHER fill row is still on screen at the top, and scrolling upward will cause the fill row (at the bottom) to finish.
But I'll have to think about this.