Remix.run Logo
jefftk 3 days ago

I'm still confused: why not stick with 8x16 and go from 25 to 30 lines of text? Is it that you need to support both 640x480 and 640x400?

spogbiper 3 days ago | parent | next [-]

There was a long legacy of using 80x25 and lots of software that would assume this layout. I think that comes from an even older legacy of dumb terminals such as the VT100 that used 80x24 plus one line for a status line. BTW 80 columns comes from an even older legacy of IBM punch cards having 80 columns. Basically, anything that wasn't 80x25 was going to break a lot of things

f1shy 3 days ago | parent [-]

And the 80 columns come (losely) from a still older standard in typography, of about 70 characters per line, found empirically as a good size for a line. Even today is good design practice in UI, Web and books to stick to 60 to 80 CPL.

aardvark179 3 days ago | parent [-]

The reason for it in terminals is much more directly linked to the IBM punched card format.

michalpleban 3 days ago | parent | prev | next [-]

Because 80x25 uses 4kB of RAM (one byte for character + another byte for attributes) whereas 80x30 would grow beyond 4kB so you would need 8kB. Maybe not a big deal in a VGA card, but everything was standardized on 80x25 from the olden days of MDA/CGA which had little video memory, so a lot of software expected that.

Plus, making the characters shorter would make them also a bit less legible.

f1shy 3 days ago | parent [-]

And maybe cost also? Not sure, but back in the days maybe 4kB more would have a noticeable (albeit I do not think extrem) effect on final price.

michalpleban 3 days ago | parent [-]

Not in the days when these BIOSes were written, but in the early eighties, yes; the original IBM MDA card had only 4kB memory (enough for just one screen of text) because memory was expensive. So sticking to 80x25 was kind of important back then.

JdeBP 3 days ago | parent | prev | next [-]

For the execution environment in which firmware SETUP ran, there were often hardwired assumptions, particularly in the parts of SETUP that provide full-screen TUIs with menus and entryfields and pop-up help boxes and whatnot, that the screen was 25 rows high.

Also remember that SETUP as a whole was often a mess of different ROM programs from different manufacturers. Far too many thought it their own ROM's business to clear the display and set text mode before they splashed their copyright strings, prompts, self-test, and hardware auto-detection information up.

Yes, they could have done things properly. The way to detect an existing screen size was there from the VGA onwards. And they could have left the display uncleared. And the whole preserve-my-graphical-splash-screen thing eventually did happen.

They did not.

userbinator 2 days ago | parent [-]

The way to detect an existing screen size was there from the VGA onwards.

When you only have a few KB in total for your option ROM, that's a luxury you can't afford. You can either sacrifice some other important feature of your product to appease the tiny minority, or assume 80x25.

p1necone 3 days ago | parent | prev | next [-]

> Is it that you need to support both 640x480 and 640x400

Probably.

A lot of software back then was rendering UIs with box drawing characters, doing complicated layout etc - it's probably much easier to retrofit existing software to output the exact same thing in a slightly higher resolution font than to make the display logic support different resolutions properly.

0points 3 days ago | parent | prev [-]

Because standard.

There was also small .com utils circulating that would change to a tiny font so you could have 40, 50 rows of text with tiny fonts, or maybe even more.