Ah, ok. Yeah, I think what you’re looking at is probably the best way to go unless you want to get tricky and use bits instead.
The only thing I can see wrong with your idea is that it kind of hard codes things to 80 columns. Not sure that’s a problem though.
Where does the tab stop table live in memory?