OS/2 Museum
os2museum.com · Personal blog · on HN since 2011
The OS/2 Museum covers the history of OS/2, DOS, Windows, and early PC hardware and software quirks.
What HN saysHN links it for retro PC history, such as Win9x boot issues and the Intel SX/DX chip rumor, and commenters say its comment threads are especially interesting.
139HN people shared it
82linked it in comments
262stories submitted
6.8Kstory points
2 months agolast shared
2011people per year2026
Most-shared posts
- 1Why Does Windows Really Use Backslash as Path Separator?10 people · 467 points · first shared 2019 · 204 comments on HN
- 2Those Win9x Crashes on Fast Machines7 people · 275 points · first shared 2020 · 102 comments on HN
- 3How Not to Release Historic Source Code4 people · 93 points · first shared 2024 · 35 comments on HN
- 4The IBM PC, 41 Years Ago4 people · 89 points · first shared 2021 · 71 comments on HN
- 5PC Keyboard: The First Five Years4 people · 81 points · first shared 2019 · 54 comments on HN
- 6A Brief History of Unreal Mode (2018)4 people · 63 points · first shared 2018 · 6 comments on HN
- 7Who needs the address wraparound, anyway?4 people · 5 points · first shared 2020 · discussion on HN
- 8OS/2 Museum4 people · 4 points · first shared 2018 · discussion on HN
- 9Lies damn lies and wikipedia4 people · first shared 2020
- 10The Future That Never Was3 people · 134 points · first shared 2024 · 69 comments on HN
- 11VME Broken on AMD Ryzen3 people · 117 points · first shared 2017 · 68 comments on HN
- 12The Secret History of ATAPI3 people · 100 points · first shared 2021 · 38 comments on HN
- 13OS/2 Warp, PowerPC Edition (2011)3 people · 97 points · first shared 2019 · 92 comments on HN
- 14The Dual-Drive IDE Hell3 people · 92 points · first shared 2021 · 71 comments on HN
- 15More than two hard disks in DOS3 people · 88 points · first shared 2025 · 49 comments on HN
What HN people wrote when they linked it
quickthrower2 · 2023-08-07
Got rabbit holed... I love this ad - https://www.os2museum.com/wp/os2-history/os2-beginnings/1987-05-11-inf… - it is a sort of weird mixture of Steve Job's Apple smooth talking and desperate street seller at the same time.
jaclaz · 2023-05-23
Not connected to the AARD code, but the abominations that MS did to boot floppies in Win9x with volume tracker (or IHC code) is worth a mention:
https://www.os2museum.com/wp/the-ihc-damage/
https://jeffpar.github.io/kbarchive/kb/148/Q148637/
jdebp touches the matter on the page on (previous) messing up with bootsectors by MS-DOS:
http://jdebp.info/FGA/volume-boot-block-oem-name-field.html
(but those DOS ones were only about not trusting the BPB fields, not about corrupting the OEM field)
lproven · 2022-09-30
userbinator · 2021-11-26
Note that there's a followup to that article, 3 years later: https://www.os2museum.com/wp/more-about-that-strange-pentium-4/
IMHO the comments are the most interesting part of these articles. They read like biologists trying to figure out what "species" this odd specimen is.
pavlov · 2020-11-10
Yeah, seems like “SX is a binned faulty DX” was a popular but unconfirmed rumor that has stuck with me for 30 years.
The die is the same, but there’s no evidence Intel rebranded rejected DX chips. Here’s an extremely pedantic discussion (when it comes to obsolete hardware, the best kind of discussion) on the topic:
http://www.os2museum.com/wp/lies-damn-lies-and-wikipedia/
einr · 2020-09-21
The Obscuritory -- https://obscuritory.com/ -- if you have any interest in the culture surrounding computer games or retrocomputing or even just obscure, weird things in general I can not recommend this enough
OS/2 Museum -- https://www.os2museum.com/
Fun With Virtualization -- https://virtuallyfun.com/
The Old New Thing -- https://devblogs.microsoft.com/oldnewthing
The Byte Cellar -- https://bytecellar.com/
McMansion Hell -- https://mcmansionhell.com/
thrownaway954 · 2020-06-03
an operating system made through a joint venture between microsoft and ibm. it was the predecessor to WinNT. it could run dos, win16, win32, posix as well as os/2 native apps. it really was an amazing operating system at the time with a VERY passionate community behind it. watch some of the videos for a good take on it:
http://www.os2museum.com/wp/os2-history/os2-videos-1987/
JdeBP · 2018-05-15
Other similar resources:
* http://vaxhaven.com/
Note in particular the extensive doco collection.
* http://www.os2museum.com/
M. Necasek deals in more than just OS/2.
wolfgke · 2014-08-13
This is a screenshot from OS/2 Warp 4, which was released after Windows 95 (source: http://www.os2museum.com/wp/?page_id=132). OS/2 Warp 3 that came before Windows 95 had the following set of Window buttons:
http://www.guidebookgallery.org/screenshots/os2warp3
networked · 2013-11-27
>Jolla brings you the best of both worlds – super intuitive Sailfish OS apps and the latest Android™ apps.
The recent article on OS/2 [1] makes me wonder whether such compatibility (which, as I understand, is full and not selective) is actually good for them. Either way, tough, I wish Jolla success; I'd like to see Sailfish OS [2] on an actual device.
[1] See https://news.ycombinator.com/item?id=6792010. The short of it is that the Ars Technica article claims OS/2's compatibility with Windows made developers less inclined to write native applications for OS/2. Some discussion on whether that was the case can be found in the comments to this response to the article: http://www.os2museum.com/wp/?p=2144.
[2] https://sailfishos.org/
st_goliath · 2026-08-20
Given the context and your reference to Quake, I assume by "the older days" you mean the 90s, PCs and early Windows?
If you weren't previously aware of "The Old New Thing" blog, Raymond Chen has been sharing stories about Windows 95 development for decades at this point. So many in fact, he published a book under the same name (the book is essentially a best-of collection from the blog in paper form).
The os2museum[1] blog is also a gold mine. Tim Paterson at one point tried to start blogging, sharing a few anecdotes about the early days of DOS[2]
Speaking of books, you might enjoy "Showstopper!" about the development of NT, even tough it is a bit shallow on the technical side. For the technical aspects, you might want to get it together with "Inside Windows NT" (first edition) by Helen Custer.
You might also enjoy: "Another Boring Topic" [3] YouTube channel, covering (among other things) early Windows development in excruciating detail and "Old Computers Sucked" [4], actually trying to run the software on era appropriate hardware. "Cathode Ray Dude" is all over the place but often also covers hardware and software of roughly that era[5].
A sibling comment already mentioned JWZs blog, if you have fond memories about Netscape, you might enjoy "Project Code Rush" [6].
Btw. Netscape Navigator 3.0 has just turned 30.
[1] https://www.os2museum.com/wp/
[2] https://dosmandrivel.blogspot.com/
[3] https://www.youtube.com/@AnotherBoringTopic/videos
[4]…
cwstarblazer · 2025-09-13
What's noteworthy is that EMM386 is also a hypervisor, albeit a very thin one. It is absolutely noteworthy, and something I touch on in my article; Windows/386 was heavily based on EMM386's code, both for the EMS emulation as well as for the V86 monitor itself. EMM386 was the starting point for Windows/386, and CEMM/EMM386 are special because they know how to transfer their state into Windows/386 via GEMMIS aka the Windows/386 Paging Import Specification.
After a conversation with Ralph Lipe, designer of Windows/386, he revealed to me that Windows/386 was so thin of a layer over EMM386 (being a slightly more heavy hypervisor but not by much) that it had no scheduler for 32-bit code; there was one thread of execution in the VDMM that IRET'd into VMs, but each VM did not also have an independent Ring 0 protected-mode context like in Windows version 3.0.
One could imagine an alternate reality in which x86 gained full virtualisation extensions earlier, causing the hypervisor model to be taken even further and creating a bigger architecture gap between Windows and other OSes. Worthy reading would be: https://www.os2museum.com/wp/an-old-idea-x86-hardware-virtualization/
wahern · 2023-06-07
This doesn't answer the question, but FWIW the earliest reference I could find to setlocale or related is from a 1986 journal article, Programmer's Journal, Volume 4, page 45:
> In order to preserve the existing, large body of code, it was decided to place the burden of having a non-USA/ENGLISH environment only on those users who needed it. This will be done by making the C program startup environment default to a native "locale" of USA. Users wanting something else will need to call the setlocale function to set their locale to some other implementation-defined environment.
See https://books.google.com/books?id=XV4qAAAAMAAJ&focus=searchwithinv…
So either the 1985 draft already had setlocale, or it must have been added shortly thereafter. However, Microsoft's 1986 reference manual doesn't mention setlocale, despite the introduction saying it was based on the draft standard. See https://www.os2museum.com/files/docs/msc40/ms-c-4.0-rtlref-1986.pdf
IEEE Std 1003.1-1988 (i.e. POSIX), approved 1988, already copied setlocale from ANSI C, presumably based on a draft as ANSI C wasn't ratified until 1989. See https://nvlpubs.nist.gov/nistpubs/Legacy/FIPS/fipspub151-1.pdf
I can't find any implementation before Version 10 Unix from 1989, followed by BSD4.4-Net/2 from 1991. See https://minnie.tuhs.org/cgi-bin/utree.pl.
Unfortunately none of the early committee notes or minutes seem to be available online. Hopefully someone in the know (possibly an original committee…
rep_lodsb · 2022-03-25
>Do we leave real mode as soon as CR0 bit 1 is set
Yes, that's what the bit is defined as doing. Protected mode was introduced on the 16-bit 80286, and 16-bit code segment descriptors are still supported to this day.
Even in real mode, the segment registers have hidden fields containing base, limit and access rights. The difference is that when they get loaded in real mode, the base will be set to the segment shifted left by 4 bits, with the limit¹ and access rights² generally left unchanged. What the PE bit actually affects is how segment load instructions operate, how interrupts/exceptions are handled, and a few other details.
Most instructions run exactly the same microcode in either mode: any memory access will form the address and do protection checks based on whatever is currently in those hidden fields. But a segment load (or far jump) decoded while PE=0 will execute different microcode than one with PE=1.
>That's weird. I tracked down the commit
Shuffling the code around may have fixed some alignment bug? The jump could likely be replaced by two NOPs, in any case the comment is completely wrong.
2.6.22 seems to be the last version using LMSW followed by a near jump, and presumably worked on that CPU (at least there is a comment mentioning bugfixes for Elan), so it isn't likely to be the cause of the problem.
¹ the limit on power-on/reset is 64K, but it is possible to change it to 4G, allowing access to all memory ("unreal mode")
² CS will always be made a…
jlmcgraw · 2026-08-20
It sounds like Microsoft _wanted_ to use '/' as the path separator but was forced by IBM to change it at the last minute:
https://www.os2museum.com/wp/why-does-windows-really-use-backslash-as-…
marttt · 2026-07-18
Yeah, wifi on DOS is doable, but very limited in speed and not exactly straightforward to set up (so much that I haven't seriously considered trying myself). Here's an overview and a writeup:
https://help.fdos.org/en/hhstndrd/network/wifi.htm
https://www.os2museum.com/wp/wireless-networking-in-dos/
ch_123 · 2026-05-05
It's the | symbol.
On later generations of IBM terminal keyboard, you'll see | on the shift-1 position, and a separate key with the broken-bar (¦) symbol. For example, on this keyboard, the broken bar is below the backspace key along with the \ character. https://sharktastica.co.uk/image?id=qhTU8QvD
The reason for the two different types of bar/pipe characters, and why the original IBM PC keyboards only had the broken bar on the keyboard, involves a particularly arcane footnote of history relating to supporting the PL/I language on ASCII terminals: https://www.os2museum.com/wp/a-wunderbar-story/
LocalH · 2026-04-03
Related:
The IHC Damage (2011) https://www.os2museum.com/wp/the-ihc-damage/
bluedino · 2025-09-21
Graphics programming "in the 90s" encompasses a pretty wide range.
You had raw access to things like VGA cards and then different tricks per each individual card when it came to things like SVGA
http://qzx.com/pc-gpe/index.php
You had a few things like UniVBE that tried to create a common platform for VESA cards to be used
https://wiki.sierrahelp.com/index.php/Scitech_UniVBE
Meanwhile, you had things like video drivers for Windows, usually basic 2D functionality:
https://www.os2museum.com/wp/windows-9x-video-minidriver-source-code/
https://www.os2museum.com/wp/antique-display-driving/
In the mid-90's we started getting 3D hardware like 3Dfx and Rendition cards, they each had their proprietary interfaces.
And then finally, the 3D hardware was adopted by standards like OpenGL and DirectX.
mikepurvis · 2025-08-05
Wasn't power management an issue with early portable computers? I feel like it wasn't until Windows 95 and beyond that machines were properly sleeping in between tasks— before then you were likely to end up just spinning the processor in an idle task.
This kind of thing can even be a problem trying to virtualize DOS stuff: https://www.os2museum.com/wp/idle-dr-dos/
diet_mtn_dew · 2025-03-04
A network redirector interface (for 'redirecting' local resource access over a network) was added at least by DOS 3.1 in 1985, possibly earlier in 3.0 (1984)
[1] https://www.os2museum.com/wp/redirectors-and-dos-3-0/
ForOldHack · 2025-03-03
The cited website went offline this morning, and it does not discuss the execution rate of the 286, NOR does it discuss the reserved bytes in the GDT, and LDTs.
Not a lot of confirmation....
https://web.archive.org/web/20160204052256/http://intel80386.com/386ht…
" For those descriptors that are common to both the 80286 and the 80386, the presence of zeros in the final word causes the 80386 to interpret these descriptors exactly as 80286 does; for example: "
This is patently and documented as untrue. The final word is reserved for use as a 365 GDT, and breaks 286 code, specifically Xenix 286, on a 386.
https://www.os2museum.com/wp/theres-more-to-the-286-xenix-story/
lsllc · 2025-01-31
Looks promising -- it's about time, I haven't been satisfied with any debugger since the days of Periscope!
https://www.os2museum.com/files/docs/periscope/periscope-manual-m54.pd…
gattilorenz · 2025-01-04
The DiskOnChip was a somewhat popular solution (think of thinclients), often running stripped down versions of Linux in the early 00s.
Here you can see it on an external board: https://www.os2museum.com/wp/diskonchip/
I have a few thinclients with a socket directly on the mainboard for a DOC
jasomill · 2024-04-27
Borland C++, Microsoft C/C++, and GCC (DJGPP[1]) could all target 32-bit extended DOS, but Watcom was the first[2] to bundle a royalty-free DOS extender[3].
[1] https://news.ycombinator.com/item?id=39038095
[2] https://www.os2museum.com/wp/watcom-win386/
[3] https://en.wikipedia.org/wiki/DOS_extender
ynoxinul · 2024-04-09
I've found the description of the thing: https://www.os2museum.com/wp/emulating-etherlink/
Mine is better because it has two buffers :) But still, only one received frame is kept.
xeeeeeeeeeeenu · 2024-03-14
The OS/2 Museum has a more in-depth article about this, with actual screenshots:
https://www.os2museum.com/wp/the-future-that-never-was/
Also Virtually Fun (with a video):
https://virtuallyfun.com/2024/02/26/an-actual-look-at-microsoft-os-2-2…