TUI

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
User avatar
01000101
Member
Member
Posts: 1599
Joined: Fri Jun 22, 2007 12:47 pm
Contact:

Re: TUI

Post by 01000101 »

I'm not 100% about 80x60, but I know for a fact (as I use it) that 80x50 exists. That's just standard 80x25 mode (3?) with 8x8 font.
User avatar
Stevo14
Member
Member
Posts: 179
Joined: Fri Mar 07, 2008 3:40 am
Location: Arad, Romania

Re: TUI

Post by Stevo14 »

Troy Martin wrote:Is there an 80x60? Cause having a 640x480 text mode for TBOS would be real nice!
I imagine 80x60 is possible (as are many other resolutions) if you are prepared to directly program the VGA registers. I use 80x50 in my OS which, because I use an 8 pixel dot clock, works out to 640x400 VGA resolution. With a 9 pixel dot clock it would be 720x400 but in that mode the letters are too far apart (and too square) IMO so I use the smaller dot clock and a custom font to increase the readability a little bit.
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: TUI

Post by Troy Martin »

I use 80x50 as a default mode, using the BIOS interrupt 10h ah=1112h. It's real nice, but I think having 640x480 text mode could be kind of nifty.

Should I just go into graphics mode and start working on finishing my own 8x8 font?
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
jal
Member
Member
Posts: 1385
Joined: Wed Oct 31, 2007 9:09 am

Re: TUI

Post by jal »

Troy Martin wrote:Is there an 80x60? Cause having a 640x480 text mode for TBOS would be real nice!
You could have an 80-wide mode in both 640 and 720, the latter with 9-pixel wide characters, the former with 8-pixel wide characters. You could have an 81, 82 ... 89 character width as well of course, it's all about tweaking stuff.


JAL
User avatar
VolTeK
Member
Member
Posts: 815
Joined: Sat Nov 15, 2008 2:37 pm
Location: The Fire Nation

Re: TUI

Post by VolTeK »

what do you use to tweak or make your own characters?
jal
Member
Member
Posts: 1385
Joined: Wed Oct 31, 2007 9:09 am

Re: TUI

Post by jal »

GhostXoPCorp wrote:what do you use to tweak or make your own characters?
For text mode you mean? I usually draw them by hand, and then convert them into a bitmap with a quick tool or something. Or directly hack them into code, as was possible with Pascal in the early days (never understood why C doesn't have a binary number format, it's so usuable...).


JAL
User avatar
os64dev
Member
Member
Posts: 553
Joined: Sat Jan 27, 2007 3:21 pm
Location: Best, Netherlands

Re: TUI

Post by os64dev »

If you want a large text screen you could do it by manipulating the VGA registers, the trick is to keep the horizontal freqeuncy and vertical frequency in de default monitor ranges and adjusting the font height. I need to check my sources but it is possible to get a 80x80 resolution with standard VGA.
Author of COBOS
jal
Member
Member
Posts: 1385
Joined: Wed Oct 31, 2007 9:09 am

Re: TUI

Post by jal »

os64dev wrote:If you want a large text screen you could do it by manipulating the VGA registers, the trick is to keep the horizontal freqeuncy and vertical frequency in de default monitor ranges and adjusting the font height. I need to check my sources but it is possible to get a 80x80 resolution with standard VGA.
80 high for standard VGA would be a 640 pixel vertical resolution, which afaik is not possible. However, I do not know by heart what the limit for the VGA registers is, so perhaps it is theoretically possible (although I have never heard claims of tweaking over a 800x600 resolution).

EDIT: Not to mention the very vertically compressed image of the characters.


JAL
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: TUI

Post by Combuster »

how about an 4-pixel tall character set?

Or one-pixel tall characters :twisted:
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
Troy Martin
Member
Member
Posts: 1686
Joined: Fri Apr 18, 2008 4:40 pm
Location: Langley, Vancouver, BC, Canada
Contact:

Re: TUI

Post by Troy Martin »

Combuster wrote:Or one-pixel tall characters :twisted:
Combuster: Two words: graphics mode!
Image
Image
Solar wrote:It keeps stunning me how friendly we - as a community - are towards people who start programming "their first OS" who don't even have a solid understanding of pointers, their compiler, or how a OS is structured.
I wish I could add more tex
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: TUI

Post by Combuster »

You don't even need graphics mode for 1x8 characters :wink:
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
User avatar
Owen
Member
Member
Posts: 1700
Joined: Fri Jun 13, 2008 3:21 pm
Location: Cambridge, United Kingdom
Contact:

Re: TUI

Post by Owen »

I can actually see a purpose for a 640x480 text mode: My HDTV has a damn irritating lack of support for 640x400!
User avatar
os64dev
Member
Member
Posts: 553
Joined: Sat Jan 27, 2007 3:21 pm
Location: Best, Netherlands

Re: TUI

Post by os64dev »

jal wrote:
os64dev wrote:If you want a large text screen you could do it by manipulating the VGA registers, the trick is to keep the horizontal freqeuncy and vertical frequency in de default monitor ranges and adjusting the font height. I need to check my sources but it is possible to get a 80x80 resolution with standard VGA.
80 high for standard VGA would be a 640 pixel vertical resolution, which afaik is not possible. However, I do not know by heart what the limit for the VGA registers is, so perhaps it is theoretically possible (although I have never heard claims of tweaking over a 800x600 resolution).

EDIT: Not to mention the very vertically compressed image of the characters.


JAL
640x480 with an 6 pixels height font yields 80x80. I think i managed a 7 pixel high font by putting the VGA registers in 720x480 en still using 8 pixel wide chars. But not sure if i managed a 80x80 with that but it came close. Give me a day ar so to retrieve the sources.
Author of COBOS
jal
Member
Member
Posts: 1385
Joined: Wed Oct 31, 2007 9:09 am

Re: TUI

Post by jal »

os64dev wrote:640x480 with an 6 pixels height font yields 80x80. I think i managed a 7 pixel high font by putting the VGA registers in 720x480 en still using 8 pixel wide chars. But not sure if i managed a 80x80 with that but it came close. Give me a day ar so to retrieve the sources.
Ah, of course, I didn't think of shrinking the vertical character resolution itself. Although having less than 8 pixels makes reading more difficult, and 8 pixels wide is still all you get. So it's not that useful, as you're getting really odd characters (squeezed vertically).


JAL
paxcoder
Member
Member
Posts: 33
Joined: Fri Jan 02, 2009 4:00 pm

Re: TUI

Post by paxcoder »

JackScott wrote:
Troy Martin wrote:Better for users used to GUI's
About half the time a cursor appears and does what I want, half the time it doesn't. A CLI doesn't have that problem. It's pretty much completely different to a GUI.
Back in the days of proprietary, I remember MS Qbasic doing exactly what a GUI would, it was great. So it depends on the implementation. ASCII UI is tons much easier for a Windows user. And perhaps universally faster to get around. If you decide you'll make that, just make sure you make sort of textual widgets and inheritable objects - basically a framework - that can be used in an easy way when writing code, so that you don't waste your time making TUI's for your progs instead of progs yourself.
I know this might sound awful, but learn from Microsoft. It's the king in the field (Txt UI's), and it practically defined the standards (how things should look, what chars are used for what objects etc).
Help this rabbit conquer the world by including it in your code: for(;;) fork();
Post Reply