Could you please name a single model of SFF PC that exposes a serial connection via RJ45 port?
This reads like such an arbitrary wish without a reasoning WHY you would want this. I'm sure OP has a reason for preferring it, but what makes the 80x25 superior in their opinion?
Had to get a CRT to see what the hell was going on.
Also, it should still be possible to connect a serial mouse to a modern system thanks to adapters. I still have serial to PS/2 and PS/2 to USB adapters floating around in a tackle box.
To be fair, they listed reasons to need a 80x25 terminal, but not reasons to need a 80x25 console. I'm a bit unclear as to why they could not use a regular 80x25 term in their graphical session.
720 pixels by 400 pixels is a 5:9 aspect ratio, but the monitor is a 4:3 aspect ratio display. On a CRT the result was an image made up of pixels that were taller than they were wide. 35% taller, to be specific.
To reproduce this on an LCD you need to scale the image up to 720×540 pixels which results in every line being drawn as either one or two lines of LCD pixels. Some lines are literally double the height of others. This is super ugly! Of course you could scale it up to 1440×1080, but now you’re just scaling the lines up by a factor of 2.7 instead of 1.35. Some lines are 2 pixels tall and others are 3, which still makes some lines 50% taller than the rest. On a 4K monitor you could scale it up by a factor of 5.4 to 2880×2160 making some lines 5 pixels tall and others 6. This is certainly better but you’ll still be able to tell the difference and it’s still ugly.
When you scale an image taken from the real world, such as one from a television program or a movie, then nobody will notice the artifacts. But when you scale pixel graphics, and especially text, then the artifacts spoil the whole thing.
There are two other routes you could take.
You could scale the text display instead. You could have an 80×33 text display using the 9×16 character cell. This gives you 720×528 pixels, which is close enough to the right ratio that you can just scale it up by a nice integer ratio and just ignore the few wasted pixels at the top and bottom of the screen. But now you’ve squashed the aspect ratio of the characters!
Ok, so you could stretch the character cell to 9×22 pixels, redrawing all of the characters by hand to approximate the original shapes. You’ll only have room for 80×24 characters in 720×528 pixels, but that’s much less disappointing than mucking about with the original font. People _grew up_ with that font. They _like_ it.
Of course neither of these options can take advantage of real VGA hardware. One of the advantages of VGA was that the CPU only had to manage a 2 kilobyte text buffer while the VGA hardware composited the character data from the font and created the video signal that went to the display. It could do this in real time, meaning latency was actually lower than a whole video frame. If you emulate this on a CPU it’ll be much, much slower than that. If you farm it out to a GPU instead then it’ll be far more expensive. A modern GPU needs tens of billions of transistors to run the shader that emulates what probably took a few thousand transistors on original VGA hardware.
A completely modern take on a console would lean into the new ratios and might have a 120×30 text display and a 16×36 character cell, creating a 1920×1080 pixel display that doesn’t need any scaling on most LCD panels. Instead of trying to support the original VGA character set (CP437 as it is sometimes called) and disappointing its fans, it would support Unicode, text shaping, combining characters, BiDi text, emoji, etc, etc. And the compositing would be done in hardware, but not in a shader on a $500 GPU. Or even a $100 GPU.
This isn't true. Besides there being only a finite number of distinct phosphors / grid holes, the electronics and logic driving the display can also only handle a limited range of frequencies.
As LCD pixel densities increase the situation becomes effectively the same.
That said, there were differences back when... you had the original CGA and EGA as precursors to VGA. I used an EGA 386 system for several years and have similar fondness for that, especially in that it was the native for RIPterm/RIPscrip in the early-mid 90's. Which was still different from the much more common VGA modes.
Hell, my biggest niggle to this day is that so many terminal apps don't match the DOS colors you got with CGA/EGA/VGA default. I often will configure that, so I can at least output classic ANSi art to my terminal and have it look closer to correct. I keep working through ideas for a "modern" text mode BBS that worked well in modern terminals. On the flip side, I'm thinking of adapting a door server model that will map CP-437 output to UTF-8 and map the colors to rgb color codes for modern terminals to show the right colors.
Why would you not setup your graphical terminal to be full-screen on whatever column/row count, what's the difference ? Surely the rasterizable screen size is the same whatever mode your screen is in?
I would think the scaling would come horizontally ... you can put as many pixels horizontally as your RAMDAC can manage, but screen width per pixel depends on the pixel time vs the line time.
Heh. [Most] PS/2 to USB adapters aren't.
They don't actually adapt the PS/2 protocol to USB, they just adapt the pins. The USB _hardware_ on the host does the emulation. However, the new generations of USB chips stopped bothering with the PS/2 emulation so these adapters are now useless.
I bought a used slideable rack-mounted LCD last year for my home server rack, and its keyboard with touchpad use PS/2. That's how I found that out.
I actually always disliked the modeset that the author remembers fondly, but it is always sad to lose part of our history for arbitrary reasons and especially so if it breaks a ungoverned consistency.
To use your example: Real mode still exists and you can use it, and firewire is effectively the father of Thunderbolt (and granddaddy to Thunderbolt 3-4); so its removal really does feel unnecessary without additional context.
Serial mice is masochism, but people do dislike that PS/2 is gone, for good reasons.
More than half the code I've been paid to write in the past 2-3 years has been written in vim running on a vtty with no X and no mouse. It's my favorite way to work, although occasionally it's impractical.
I think serial mice should still work as well - https://wiki.alpinelinux.org/wiki/Serial_mouse
Serial mice still also just work in Windows, too! If you attach a serial mouse to a USB-serial adapter, then attach the adapter, Windows should pick up and load sermouse.sys. On the flipside, if you’ve got a weird serial device attached screaming garbage out the wire, Windows might pick THAT up and load the mouse driver, too… “hey, why is my cursor freaking out?”
I don't see why it shouldn't be possible? It seems like a reasonable thing to want to be able to change and even force resolutions to whatever your hardware will support, especially if there's a large amount of old software out there which expects a certain resolution. Old computers are very nice to have, but increasingly difficult to find and find working parts for. They also tend to come with some pretty big trade offs in terms of size, noise, and energy inefficiency. It'd mean a lot of less than ideal hardware just to get back something that people already had.
The article author is explicitly looking for 720 by 400, not 640 by 400, and is trying to obtain that using Linux mechanisms that select graphics modes and do not configure the hardware to be in an actual text mode. i.e. fbcon rather than vgacon.
And this even matches the way PC CRT monitors worked - each displayed "pixel" lights many different phosphors.
For me, the worst things about the Linux graphical console are lack of scrollback and horrible performance. Linux still has scrollback in VGA text mode, and of course it is super fast because each character is only 2 bytes. In graphics mode you can only fix this by running a program that provides its own graphical terminal, like kmscon or fbterm.
The best thing about the graphical console is ability to use bigger fonts, so your characters can be smooth and not pixelated. I like the Terminus fonts. As long as performance isn't a problem it's better to increase font size than to decrease the resolution.
Dumb question: when I boot a modern systemd-based distro installer in terminal mode, am I using "VGA text mode" or "graphics mode"? Do I have to be literally using VGA to use VGA text mode?
EDIT: I read TFA and it seems like the answer is that I probably have never used VGA text mode.
If you're doing a BIOS boot, you might be using VGA text mode, if you haven't loaded a framebuffer driver. VGA text mode works over BNC, DVI, HDMI, DP, etc, if that was your question, you don't need a VGA connector. EGA text mode might be similar enough to also work, but that's outside my depth.
I'm not sure that Linux uses it, but VGA has nice things to accelerate scrolling. You can set the top of the screen down into the buffer, and then set a line number where it resets to the top of the buffer. If you set the line stride so that it evenly divides the buffer (typically wider than the line width), it makes scrolling and wrapping around the buffer very simple and elegant.
UEFI GOP doesn't provide any mechanism for a buffer larger than what's displayed, so scrolling requires copying. :(
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
Unfortunately, the patch is not frequently updated to new kernel versions.
https://public-inbox.gentoo.org/gentoo-user/2316312.ElGaqSPk...
Where are you seeing that size?
The widest variant the Terminus project page[1] lists is 16x32.
If the system you're using (ARM??) doesn't have a particular fbdev driver, it still works thanks to the simpledrm weirdness. But if you want very particular results, you're gonna need to ship a driver for your card, to tell the card what to do, to tell the monitor what to do. The complaint seems to be that architectures change? I dunno what to tell you man. I hate technology too, but it do be changin'.
Personal preference are tautological.
Maybe I don't understand something, so please explain?
Historically, when processors, motherboard buses, and video cards of physical machines were much slower, text modes were accelerated ways to write text such that they were much faster than writing and scrolling text graphically in a video framebuffer. Interestingly, on VGA/SVGA cards, it's possible to do double buffering of text by page flipping but it's pretty pointless even on real hardware.
Emulated hardware generally doesn't suffer from tearing effects that happen on real hardware where large updates (mostly in graphics modes rather than text modes) aren't synchronized with the raster scan and end up looking bad by showing partial portions of the previous frame and current frame while an update is happening. In graphic modes, this was mostly eliminated by double- and triple-buffering with precisely-timed page flipping on video cards that had enough memory to have 2 or more whole frames..
(B800:0000 and A000:0000 are permanently etched in my brain.)
And let's chuck into the dustbin of history fiddling with IRQ dipswitches to disambiguate your mouse, video, disk, and audio controllers; the "turbo" button; "It is now safe to turn off your computer"; CGA/EGA/VGA/HGA/MCGA/SVGA/XGA, RLL/MFM/SCSI/IDE, and while we're at it, TSR programs like sound drivers, mouse drivers, etc. Let's not even discuss OS/2.
You know what sucked? Booting up into CGA and not being able to figure out how to escape that abomination. Why not pine for that?
All of this trash is behind us and frankly I think we're better off for it. If you want to go play with obsolete computers, then finding some old computers and some old computer junkies who still enjoy that junk is the right way to go. Personally, I had my fun, but I like our modern machines so much more than those old smokey capacitor poppers. But I have to admit, I almost miss compiling my own kernel. Almost.
I remember desperately trying to put drivers in high memory, because Wing Commander 2 needed more memory if I was to get the precious images of the joystick moving. Slowly removing items, one by one from my autoexec.bat file, desperately hoping it was going to work, but then the creeping realisation that I would have to unload my soundcard drivers if I wanted a chance.
Or the time our bios randomly wiped its memory and my dad was convinced I had destroyed the harddrive. Thankfully I was told by a family friend that I would only have to turn on the BIOS and set it to # 31 (because somehow hard disk sizes, sectors, et cetra were all standardized) in order to access our precious 95 megabyte hard disk.
Oh, and only some hard drives were standard like that. For others, you needed to set sectors, tracks and landing zone manually. Happy fun times if your CMOS battery ran out.
Another anecdote from around that time (or a bit later): some friends were alarmed that their PC was not booting Windows as usual. Turns out they had forgotten a bootable CD in the CD-ROM drive, which was showing some cryptic text mode menu on startup. Easy fix: remove CD, restart, works...
Needless complexities have simply crept in other parts of the machine.
In fact, I would argue that the objective experience of responsiveness has not meaningfully changed at all if you stick the average, except that speed and capacity are much more available if you are willing to spend even a little bit more time and money.
There are all sorts of disabilities that might necessitate a console with large text, and setting a specific size (in this case 80x25 because it used to be a standard) isn't such an outrageous demand.
The author knows a solution: set a specific resolution and select a specific font. The problem is that they can't pick that resolution, even though they could before, because on UEFI and non-amd64 the common GPU configuration parameters don't work in Linux.
We should default to a modern system, but the kernel should have a standard way of configuring the boot console. For every person who wants 80x25 mode, there's someone with a weird device that outputs three pixel high fonts because the default resolution is bugged, and both need the same override to fix their issues.
Defaulting to 80x25 (or anything else reasonable) in an almost infinitely ugly font would be a vast improvement.
Another example is dropping support for 32-bit x86. "But how will I run Linux on my PC from 2001?". Or the resistance to Rust in Linux because LLVM doesn't support the PDP-8 architecture.
Tbf I don't even think Unix was ever ported to the PDP-8 :D
Actually there _is_ a lot to be missed about those times, in spite of all the "progress" we've made since then.
I fear about my filesystem every time I notice the printer is running at night (after a long print job) and I just turn it off without going over to my pc, ssh in and shut down the OS.
Still, it hasn't eaten my filesystem, yet ... ext4 journaling DOES seem to work.
$ qemu -curses …
What a lovely feature, if you can get it to boot something with a VGA mode.Some years ago, I had a headless system running QNX in a control application. About 30% of the CPU time was being consumed by something. It turned out that the system had a very minimal VGA controller, not connected to anything. The QNX boot image was capable of running with no console at all, which was the intent. But it found the VGA controller and launched a screen saver. The screen saver worked by shifting the entire screen one pixel at a time, which, with this minimal VGA controller, was a very slow read from VRAM, one byte at a time. This was so slow that it ate up a huge amount of CPU time.
This being QNX, it wasn't at high priority, so the real time stuff preempted it.
When terminals were common, they pretty much all were 80 or 40 columns and 25 rows, not a lot of choice, most were about the same size.
I actually like modern emulated terminals, with all the bells and whistles.
Also 80x25 has a lot of history, and some things work better at that size.
I don't know if you've ever tried using a non-graphical display on linux recently, but if you have say a 4k display, you get unreadably tiny text. It also breaks a lot of text-mode stuff.
If you've ever tried to FIX this on your system, you'll find a bunch of roadblocks.
You can't just use an easily available font for the console. Console fonts have to be created or converted into a non-standard .pfs or .pfsu format.
most linux distributions have at most a 16x32 font available if you take the time to do the override properly. Even that font is pretty small on 4k.
On the other hand, kmscon is just a graphical terminal emulator and display server built into one. Running `cage foot` (i.e., the very minimal "foot" terminal emulator running under the single-app "cage" display server) and setting foot's settings to whatever you'd like would get you a better (and importantly, fully maintained) experience.
This is one reason I appreciate older computers; I prefer VGA textmode
But, for today's computers, kmscon and libtsm, and frecon from a trillion-dollar advertising services company, are interesting.^1 For example, being able to zoom in and out using keyboard shortcuts is useful
When I used computers with only VGA textmode running NetBSD, I always wished for a console that could possibly display images, like a Linux framebuffer, perhaps; vesafb on NetBSD was still a WIP. I was tired of switching back and forth from textmode to X11. Eventually I gave up on X11 and began using separate computers on same local network but with not gateway to the internet in order to view graphics
As a Linux user today, it's funny to read the complaints about framebuffers
I am not "either/or" when it comes to BSD v Linux. I use both. Each has its merits. But I think NetBSD may be the nicest OS for people who prefer the console. At least it is for me
Making it easy for mortals to run the OS on older computers^2 is important
1.
https://github.com/dvdhrm/kmscon/raw/master/src/kmscon_conf....
https://chromium.googlesource.com/chromiumos/platform/frecon...
https://chromium.googlesource.com/chromiumos/platform/frecon...
2.
For example, computers that are unsuitable for delivering today's internet ads
throwaway1777•4mo ago