Q2DOS – Quake 2 backported to MS-DOS
dk.toastednet.org
dk.toastednet.org
As close to the embedded world as possible.
I don't understand why is there so little documentation about MSDOS as a real-time operating system. I'd bet it would work beautifully for any piece of software that was developed with such use-case in mind.
I have some experience repurposing 8259 (the interrupt controller), and if you hook on the timer (8), there is nothing else to return the execution back to the 'OS'. In short I'd disagree about the real-time.
Volkov was much faster on older machines...
For today's applications? It sucks. A lot
Thread/Process control in MSDOS? In your dreams
Network? Are you running Netware? Otherwise you're SOL
Sound output? Sure, just set up DMA and IRQ yourself for your Soundblaster card. I mean, you have one of those right?
What has OS got to do with possession of some hardware?
Though even first Unixes "it's a file, just write to it" were better but just above the bare minimum
I really can't grasp the TUI hype that is going on nowadays.
We have command completion. And the GUIs have mostly become enshitified.
Also not true for FreeBSD and GNU/Linux GUIs.
Unfortunately doing the same kind macros in GUI is a great deal more error prone.
As for CLI vs GUI, both have their places. I wouldn’t say I preferred on over the other except for when talking about specific tasks.
I’ve also been careful not to state “TUI”. Frankly I don’t see much value making a distinction between GUI and TUI in this type of conversation because they’re ostensibly the same paradigm.
In two short text files, maybe typically a few dozen lines in total (and the OS installer is likely to give you good defaults) it sets up all preferences, from command-line keyboard layout to TCP/IP to what settings DJGPP need to compile C++. There is no control panel or other annoying settings GUI to hunt for settings, just two files.
One can be considered lucky if the GUI allows the export & import of settings.
The DOS PC was really clunky, inferior, and a struggle to use compared to any of the alternatives.
At the time, I was really annoyed I couldn’t convert my DOS knowledge into Unix (Linux) shell commands - when need came.
Marriott uses a TUI based PMS at most of their hotels, it has a learning curve like a hockey stick, but once you learn it, you can literally check a guest in 5+ min faster than using Lightspeed (what most Sheratons used), its just that much faster - a big part of that is typeahead, you dont have to wait for the screen to populate to make the next selection, something that isnt true for GUI's.
Whatever folks think of Ratatui, Turbo Vison and Clipper did it first.
Re: TUIs, I wish there were more like the ones there were in DOS with CUA keybindings.
I guess I think of it in kind of the same way people think about steampunk; in that case it’s about thinking in terms of everything being steam-powered and clockwork instead of electrical and transistor’d like it is today. It’s not like most people who like steampunk would actually prefer to live in that universe, but more like it’s just a fun think to think about.
A bit trickier if you want to run on real hardware, especially since BIOS support is basically gone now. Not sure how old hardware you have to go back to to even boot up FreeDOS. I ran it on some late 00's hardware and everything runs insanely fast. I did not remember computers could be that responsive and not annoying to use.
We are not going to do another dos game. No amount of flaming hate mail is going to change my mind on this (PLEASE don't!). The advantages of good TCP/IP support, dynamic linking, powerfull virtual memory, device drivers, etc, are just too much to overcome. Yes, all of those can be provided under dos in various ways, but it just isn't worth it.
Maybe Quake II on DOS will run with less system memory than the Windows version.
https://www.mobygames.com/platform/dos/year:1997/ https://www.mobygames.com/platform/dos/year:1998/
It looks like at least some versions of Allegro and SDL supported it as a backend.
Nice breadcrumb: https://web.archive.org/web/19991008210746/http://webpages.m...
They also used plenty of Assembly programmer and special graphics units, the console percursors of GPUs.
However since the N64 that they use graphics APIs like everyone else, GBI, GX, GX2 and nowadays NVN. For porting purposes, the Switch also supports GL 4.6 and Vulkan.
Other than that, there is also a performance culture, and not using generic game engines.
These consoles - along with everything handheld up until the 3DS - create images out of scrolling layers of background tiles and freely positionable sprites. You don’t have any kind of per pixel access, although you can manipulate the state of the hardware as the screen is being drawn to get unorthodox effects.
These days SVGALib doesn't work and fbdev is deprecated. However, the "next-generation" Linux graphics stack can achieve a fairly similar goal using the DRM/KMS APIs, albeit it's definitely a lot more work if you just want a framebuffer. On the other hand, though, it's relatively straight-forward to get an EGL context and start doing hardware accelerated things. Maybe that takes some of the fun out of it, but I think it's pretty cool.
What most have missed is that those libraries usually required root access, or setuid, unless you want to go clever with group permissions, which no one did.
It is full of fascinating and somewhat horrible advice. For rendering text-mode user interfaces the author recommends having a ~4000 bytes binary file saved that is just BLOADed straight from disk into graphics RAM (in text-mode that sets all the text and attributes/colors for the screen). Tricks like that would probably never cross my mind, being used to having to load some library to draw anything to a screen.
I discovered just some day ago pc-basic is a really impressive project. pip install pcbasic gives you a portable python-implementation of essentially GW-BASIC, running in a terminal or graphics window. But you can of course also grab the MIT-licensed GW-BASIC 1.0 that Microsoft released a few years ago (and that TK Chia modified to make it possible to build) and run that in DOSBox. I am having a lot of fun with both of those.
https://github.com/robhagemans/pcbasic https://gitlab.com/tkchia/GW-BASIC
Actually even simple GPU compositing (which can be feasibly made pixel-perfect, as shown by its routine use w/ modern desktop environments) gives you an unlimited amount of arbitrarily-large "sprites" - way better than what you get with pure CPU rendering on a framebuffer, and something which can be quite useful in a real program.
So no reason not to use X/Wayland since it's just more comfortable to develop for.
why bother with anything slow as a p3?
I was able to load it on my phone though, and it looks bloody cool.