Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Windows 3.1 in my BIOS? It's more likely than you think (hackaday.com)
155 points by guiambros on April 11, 2019 | hide | past | favorite | 60 comments


>"Windows 3.1 in my BIOS? It's more likely than you think".

That is a pretty misleading title to me, it sounds like they discovered many bios's have embedded windows 3.1 to run the user interface.

Instead its about someone purposefully loading windows 3.1 onto their bios flash chip, and how they made it functional. "How i embedded windows 3.1 into my bios" or something would be a more descriptive title.

edit: Or even "Windows 3.1 Flash edition", as the original page & hn post have, https://news.ycombinator.com/item?id=19630502


I seem to remember that Compaq business PCs in the late 1990s/early 00s had BIOS/NVRAM setup that looked suspiciously like a customized build of Windows 3.1. You held ESC or something during boot and you got a mouse-driven interface to set various hardware settings. I remember it being quite the contrast to the more common text-mode menu based BIOS setups.

I never looked into it whether it was actually in ROM/Flash or whether it booted off a special disk partition.

Here are some screenshots I found that kind of match what I remember:

https://www.flickr.com/photos/55026075@N00/4140236576/in/pho... https://www.flickr.com/photos/55026075@N00/4139477409/in/pho...


This is just made to look like Windows 3.1 at a glance but there are many small details that are different from real Windows 3.1 (or even 3.0). For example Windows 3.x do not have a 3D shaded button at the top left corner of windows, instead they have a flat button/square with a thin "-"-like rectangle that has a black outline, white filling and single pixel shadow, like a three pixel tall popup menu (which is intentional since in Win3.x this was supposed to be the icon for applications to use if they wanted to have a dedicated control/widget for showing a popup menu).

Similarly, the mouse cursor's triangular part is smaller, the window corners are missing the "connecting" corner lines, the font is different (in Win3.1 all fonts are bold and the space is narrower), the button shadow color is too dark (this was the case for EGA in Win3.x but this is VGA and in VGA the palette was modified to have a less contrasting shade for the bevel colors), the dialog box (from the first image in the three, not linked in your message) uses the resizeable (but corner lines still missing) border style instead of the dialog box style (which is blue with a white inner line), etc. I'm sure i can find more differences if i spend more time on this and look at Win3.x screenshots, but these are from memory and i think you get the idea :-P.


Sadly, I can't view your images on my device, but I have a '96 Presario that's fairly close in vintage; it has what I presume you are describing. The program resides on a hidden DOS partition on the HDD. While novel, it's a bit unfortunate, as there's no configuration program in ROM, so without that partition (or the multi-disk floppy set) you can't configure the CMOS settings.


I remember some of those old BIOSs that were quite UI involved.

I always thought "This is really neat... not sure it was worth the effort for a BIOS..."

Granted in those days users were more likely to be in the BIOS to do something than today.


Yet, the BIOSes both of the last motherboards i bought (one recently, another 3-4 years ago) had some very elaborate UIs, with skinned menus, star backgrounds and a bunch of other frivolous stuff. I think one even had some sort of background ambient sound.

Keeping with tradition though, the "help" screens of every option was as helpful as the "help" screens of my 386DX, Pentium MMX and Athlon64 desktops of decades prior, with entries such as the help for "Select frobation mode: FOO" being oneliners such as "Frobation mode, can be FOO or BARF" (but what the hell does frobation mode do and what do the FOO and BARF options mean?).


I think I still have somewhere a pile of paper booklets that came with old motherboards that have similarly unhelpful descriptions of various settings.


They just skinned their BIOS interface to look superficially like Windows 3.1.


I thought it was about someone (re)discovering AMI WINBIOS: https://media.moddb.com/images/groups/1/4/3107/winbios.gif


It's a reference to an ancient internet meme.

https://knowyourmeme.com/memes/its-more-likely-than-you-thin...


The original from an advertisement reading:

“Centipedes? In my vagina?”

It's more likely than you think.


That's the meme. The original advertisement was about a piece of software that checked computers for porn. It was from the makers of Net Nanny.


It was originally "Porn? On my computer?" and subsequently got snowcloned.


I know criticising submission titles is a meme on here but it would be nice if the top comment on a pretty interesting hack was about that pretty interesting hack.

Going on topic for a moment. I love the concept behind this project. I wonder if you could fit Linux + busybox on there (I haven't run the numbers but I'd expect it wouldn't be possible)


Please use the author's page directly: https://sakamoto.pl/weblog/07-windows-3-flash-edition/


And if, like me, you're looking for the font used on this webpage you can grab it here : https://int10h.org/oldschool-pc-fonts/


BTW, the second font is PC-9800.ttf - enjoy! :3


someone did, https://news.ycombinator.com/item?id=19630502 this later story got more traction.


which no longer loads after being overwhelmed by traffic from HN...


Why?


https://news.ycombinator.com/newsguidelines.html

> Please submit the original source. If a post reports on something found on another site, submit the latter.

(Except when the original source is not casually consumable without the context, but the original post is quite readable.)


Thank you! I did not know.


The page linked doesn't offer any additional information to what the actual author's page does.


(Since this is a problem I've had also.)

> I've tried changing the fifth case to 2 heads, 80 tracks and 72 sectors... But it resulted in an I/O Error.

This happens because the BIOS (int 13) CHS read function encodes the sector number as a 6-bit value. (IIRC it's also 1-indexed, just to add insult to injury.) If you change the geometry to 2head/80[+]track/60sector, it works on everything I had on hand for testing half a decade ago.

+: Or more; it should work with up to 1024 tracks.


Regarding the audio: I don't know about that specific model but I believe it uses standard Intel HD Audio (Azalia) --- and someone has written an HDA driver for Win3.x that goes by the name of "HDADRV9J" (complete with source code, albeit somewhat messy, in Pascal):

http://www.vcfed.org/forum/showthread.php?50867-Windows-3-1-...

http://turkeys4me.byethost4.com/programs/index.htm

(This stuff is notoriously difficult to find. I only found out about HDADRV9J from Google a few months back, and there were quite a few sites about it, now there's almost no results...)


> This was achieved via a DOS USB driver (if the device got hotplugged, R:\WINDOWS\USB\USB.BAT is your friend)

DOS has USB drivers. This is the weirdest part.


DOS is still surprisingly usable in the modern world with a little work. That isn't super surprising though given how simple a system it is and how ubiquitous it was in the relatively recent past.


Worth mentioning that there are many DOSes: https://en.wikipedia.org/wiki/DOS FreeDOS was shipped with Dell and HP computers as recently as 2012.


First, see the screenshots / video in the original article: https://sakamoto.pl/weblog/07-windows-3-flash-edition/

That's Windows 3.1? It has the window borders of 3.1 (the weird "—" in the upper left, the white menu bar) but we've got "My Computer" and "Recycle Bin" on the desktop — desktop icons weren't introduced until Windows 95. There were icons in 3.1, but they were minimized programs, since there was so start bar at the time. (But, his video and one screenshot also have a start bar in them?)


Windows 3.x had at least one third-party extension that gave it a bit of the Windows 9x look and feel, including task bar, start menu, and desktop icons.



There's something fishy here. start button is a windows 95 thing not windows 3.1


It says he's using Calmira, to make it look like windows 95. You can see that the padding on the start button and status bar are a bit off, if you look closely. (Also of course the minimize/maximize buttons on the applications are unchanged.)


"Calmira (replaces the default Program Manager)" and looks like windows 95 http://www.calmira.net/


Back in the late 90s the 1.44 MB QNX demo disk was quite a thing; it shouldn't be too hard to have it run from a BIOS flash. Found it here as I couldn't find a link on QNX site. https://winworldpc.com/product/qnx/144mb-demo


Personally I'd have gone with DOOM but cool project nonetheless. ;)

Not a fan of Calmira though, I do appreciate the original Windows 3 aesthetic.


I get the retro chic of an old Windows OS, but you could also package a window manager, web browser, text editor, and more in a floppy disk into the late 2000s using Linux. Compared to the multiple gigs of OS files needed to run Android on my smartphone, it's almost inconceivable how wasteful modern software is.


That is what you get for using 4096x4096 sized alpha blended HDR bitmaps for the icons and animated emojis on your 5" QUHD phone :-P.


This brings up a question. Why haven't manufacturers put a basic kernel in rom so that computers power on instantly? Does anyone know?


Such a great hack!

I wonder if we can put some modern-day OS in the BIOS flash.

I think the NetBSD kernel would fit, but I'm not sure how a GUI could be possible...


Didn't Windows once ship on a ROM chip? I seem to remember PCs with Windows ROMS around the 386/486 era. Pre-Win 95


"Modular Windows"

As used for the Tandy VIS, MS's first console.

http://www.computercloset.org/TandyVIS.htm


Aren't you maybe confusing it with some BIOS interfaces of that era skinned to look loosely like Windows?


Anyone remember the DOS version of AOL that used GeoWorks for the GUI?


MS Windows of some 3.x variety was apparently the original selected GUI for the Atari ST, intended to be running from ROM… however, MS couldn’t apparently get it to fit in less than a couple of megabytes, hex dumps of the code would show a hell of a lot of redundant x86 stuff in there, like references to hercules drivers and all manner of bloat that they couldn’t strip. They seemed to be disassembling the binaries to translate to 680×0 assembly and kludging it that way rather than from source, which was always rumoured to be a complete mess for the early windows versions. Anyhoo, apparently Trammiel got pissed at MS for lack of progress on shrinking and refining it and went with a version of GEM instead.


Windows 3.0 came out in 1990, whereas the Atari ST came out in 1985, so that story definitely doesn’t check out. Windows 1.0 came out in 1985 (though still much later than the ST) so maybe it was that?


I just wanted to add that the TOS ROM chips in the Atari ST were 192KB in total which is an order of magnitude less than what Windows would require. I'm assuming GP is thinking of another machine (maybe the TT / Falcon?)


Not the OP but I wonder if he's thinking of Windows 1.0? Wikipedia does describe Microsoft approaching Tramiel[1] but the details differ from what the OP suggested.

[1] https://en.wikipedia.org/wiki/Atari_ST#Operating_system


Remember the Mac OS and MacWrite fit on a single LOW-density 3.5″ floppy in 1984.


That's not too surprising. Early MacOS didn't provide much more than MS-DOS under the hood (non-hierarchical file system, manual multitasking), and the graphics were all 1bpp.


I didn't realise it didn't have a proper file system. Games were more glorified as far as user interface was concerned, e.g. the 2000 planet system with 3D graphics of the BBC Micro's Elite, running on an 8 bit 6502 machine with 32K usable RAM.

You can see the Mac OS as an expensive 'game' with the objective to write a letter, running on dedicated hardware.


Reminds me of the 486 motherboard which would boot DOS with no SIMMs (RAM) in it. It had 64 kbyte cache on the motherboard...


Wait, wow, I've never heard of this. Do you have a link of this phenomena?


Don't know about the 486 specifically, but this sort of thing wasn't unheard of. I have a pentium-era machine with 8MB EDO built into the board. It can stand alone or complement whatever you put in your DRAM slots (though curiously, if you max it out at 4x32MB, you get 128MB, not the 136MB you might hope for...)

Edit: wait... I thought we were talking about something unusual because he mentioned SIMMs, and the 486 specifically, but I guess he's just talking about the conventional memory on x86 that peaked at 640KB. This is not what I was describing above (that system has extended EDO built in in addition to the conventional 640).

Don't have a specific link for you, but just look into the memory model of the IBM PC, conventional vs extended RAM, etc... 640KB (or less!) was all we used to have, plugged right into DIP sockets.

When, in the late 80s, computing technology started increasing in power like mad, we quickly needed access to more RAM, but the original memory model held us back, so we had to hack around it in various awkward ways. So we ended up with the original on-board chips + SIMM expansion slots.

Looking back, we were so terribly shortsighted in our designs, and Moore's Law just continually blew everything to hell.


That's not what this is about. OP is talking about booting with just the external L2 cache (which I've seen vary from 64KB to 256KB) when no RAM SIMMs are plugged in.


So the cache can stand in for main memory when none was present? I'd be interested to see the implementation details, but alas, I must be going about my search wrong =(

Will have to look into it more when I have some more time.


That's not cache, friend - that's main system memory =)

(and 640KB by the time of the 486)

(though, speaking of cache, the 486 was the first chip in the family to have L1 cache - a whole 8KB of it!)


Parent specified a board with SIMM sockets, which would contain main memory. The 486 family supported external L2 cache, for which 64KB would be a plausible size.


Did SIMM RAM straight up replace the DIP chips when it was introduced? For some reason I thought they were used in parallel, with conventional RAM physically separate from the rest. I guess there's no reason that should have to be, though, as the 640K barrier was a real mode limitation, and nothing more. What they say about assumptions applies.

I guess I kind of missed out on the fun here, going straight from an XT to a Pentium...


> For some reason I thought they were used in parallel, with conventional RAM physically separate from the rest.

I don't specifically know of any boards like that, but Pre-Pentium boards were kind of a free-for-all, so I wouldn't be a bit surprised if they exist.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: