This is just a "because I wanted to" project. And I get that; done a lot of those myself just to understand what the hell was going on. But the rewrite of turbo vision into FPC and compiling to half a dozen targets has been around for 20 years. Turbo vision is probably the best text mode windowing library in existence. The cool fun kicks in when you can map a whole text screen to an array like so: var Screen: Array[1..80,1..25] Of Byte Absolute $B800; // or something like that as i recall
What turbo vision brought to the game was movable, (non) modal windows. Basically a lot of rewriting that array in a loop. Pretty snappy. I made a shitload of money with that library.
array[1..25, 1..80] of Word absolute $B800:0000.
Arrays in TP were laid out in row-major order, and each character was represented by two bytes, one denoting the character itself and the other the attributes (foreground/background color and blinking). So, even better, array[1..25, 1..80] of packed record ch: char; attr: byte end absolute $B800:0000.
Replace $B800 with $B000 for monochrome text display (mode 7), e.g., on the Hercules.
> This is just a "because I wanted to" project.
It's not. They needed a small TUI editor that was bundled with Windows and worked over ssh.
I am curious about how you made money with it, if you don't mind sharing.
Every time I see a new modern TUI framework, my disappointment is the same: "Oh. This isn't as good as Turbo Vision."
For those curious, here is a modern port of the C++ Turbo Vision that also supports Unicode:
https://github.com/magiblot/tvision