LINE-A text blit scaling
Posted: 01 Nov 2026 05:48
I've been trying to modernise some source code (someone else's) recently that uses LINE-A vector 0xA008 for rendering double-size text, and I noticed that the value it uses for dda_inc is 0xfe00 (actually -512 because it's an int16_t). I tried to understand the effect of this value by searching for documentation, but I can only come up with this formula which appears in The Atari Compendium, the Temlib wiki, and other places.
Here's the problem. This doesn't work at all. I did a test sweep of values from 0 to 0xFD20 and found that the reality - under TOS 1.4 at least - appears to be that 0 represents original size and 0xFFFF represents double size, with a linear transition between them.
The TOS source is pretty convoluted and I couldn't work out whether this is intentional behaviour or not.
What's going on here? Has everyone always just worked it out through trial and error and ignored the docs for the whole 41 years? :shock: - I am confused.
I also noticed that changing the XDDA value, AKA xacc_dda, apparently doesn't have any effect at all.
The actual behaviour sounds a lot like the actual DDA algorithm - but the docs don't.
Here's the problem. This doesn't work at all. I did a test sweep of values from 0 to 0xFD20 and found that the reality - under TOS 1.4 at least - appears to be that 0 represents original size and 0xFFFF represents double size, with a linear transition between them.
The TOS source is pretty convoluted and I couldn't work out whether this is intentional behaviour or not.
What's going on here? Has everyone always just worked it out through trial and error and ignored the docs for the whole 41 years? :shock: - I am confused.
I also noticed that changing the XDDA value, AKA xacc_dda, apparently doesn't have any effect at all.
The actual behaviour sounds a lot like the actual DDA algorithm - but the docs don't.