Thanks for the replies. Those and some more Googling led me to some helpful reading. I understand now how the dot clock and the horizontal scan rate get you a 341 pixel line, of which 3/4 of the line (256 pixels) is signal. So it’s the 75% (the percentage of signal in each line) that’s staying constant. Got it.
I’m still a bit confused about the 1536, though. I found the Optimal Timings page on the wiki and I see that it’s coming from 256 x 6 = 1536. And 1536/1200 ~= 1.28. So is the x6 multiplier just the integer multiplier that gets us closest to 4:3 aspect? So that way we can scale up the native 256×240 without doing any interpolation?