The 12 KB that Windows just can't seem to quit
- Reference: 1746704086
- News link: https://www.theregister.co.uk/2025/05/08/moricons_dll_raymond_chen/
- Source link:
As the file's name suggests, moricons.dll contains more icons. However, its size, a mere 12,288 bytes, hints at more compact icons than today's AI-generated monstrosities. These icons date back decades to the halcyon days of Windows 3.1.
In the era of Windows 3.0, some old MS-DOS programs could be run in a window. An application existed that could scan a user's hard drive for well-known executables and create a Program Information File (PIF) containing the MS-DOS configuration and an icon for the executable if a user wanted. The application would then be added to the Non-Windows Applications group in Program Manager.
[1]
The icon was a plain gray image labeled "DOS."
[2]
[3]
In Windows 3.1, Microsoft mixed things up a bit. Rather than create a PIF and add a plain icon, the Set Up Applications program could pick a more attractive icon. "When you clicked it," [4]said Chen, "it still ran as an MS-DOS program, but at least the icon was prettier."
"Initially, these icons were placed in progman.exe , but as the number of icons grew, it became clear that they needed their own home instead of squatting inside the Program Manager binary. So the icons started getting added to a DLL called MORICONS.DLL because, well, they were more icons ."
[5]The passive aggression of connecting USB to PS/2
[6]Why did the Windows 95 setup use Windows 3.1?
[7]Microsoft vet laments a world where even toothbrushes need reboots
[8]How Windows got to version 3 – an illustrated history
We took a look at the moricons.dll file that comes with Windows 11, and it is a nostalgic glimpse at another era. Turbo Pascal and [9]Quattro Pro are there, as are a range of WordPerfect images. Lotus 123 and [10]cc:Mail are present, and even dear old Sidekick 2 is in the collection.
"This moricons.dll icon library has carried forward ever since. Windows itself created those Program Manager icons, and those Program Manager icons turned into shortcut files in Windows 95, and those shortcut files would then migrate forward as you upgraded Windows.
[11]
"In theory, the compatibility chain could have been abandoned with the introduction of 64-bit Windows since there was no upgrade path from 32-bit Windows to 64-bit Windows (clean installs only), and because 64-bit Windows didn't support MS-DOS programs any more, so you couldn't reinstall them onto your 64-bit Windows system."
The DLL survived the 64-bit port. Chen recalled that most of the port was mechanical, rather than focusing on old 32-bit components which could be deleted.
Plus, the DLL was only 12 KB, and maybe, just maybe, somebody somewhere was using those icons for something.
[12]
"Better to let sleeping dogs lie and eat the 12 kilobytes." ®
Get our [13]Tech Resources
[1] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2aBzVIF6-MsYpXT5Ifr2RvQAAAYw&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aBzVIF6-MsYpXT5Ifr2RvQAAAYw&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aBzVIF6-MsYpXT5Ifr2RvQAAAYw&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[4] https://devblogs.microsoft.com/oldnewthing/20250505-00/?p=111143
[5] https://www.theregister.com/2025/03/27/raymond_chen_usb/
[6] https://www.theregister.com/2025/02/17/windows_95_windows_three_point_one/
[7] https://www.theregister.com/2025/02/02/raymond_chen_restarts_updates/
[8] https://www.theregister.com/2025/01/18/how_windows_got_to_v3/
[9] https://www.theregister.com/2013/01/30/office_2013_perspective/
[10] https://www.theregister.com/2007/02/06/pegasus_farewell/
[11] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aBzVIF6-MsYpXT5Ifr2RvQAAAYw&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[12] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aBzVIF6-MsYpXT5Ifr2RvQAAAYw&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[13] https://whitepapers.theregister.com/
Wasn't that Hex? As I recall, it wouldn't work without the FTB enabled.
+++Mine! Waah!+++
Other excellent ones were "initialise the GBL"
+++Divide by Cucumber Error. Please Re-Install Universe and Reboot+++
GNU Terry Pratchett
++?????++ Out of Cheese Error. Redo From Start
I didn't see it directly linked in the article, but Raymond provides a gallery of the icons here:
[1]https://devblogs.microsoft.com/oldnewthing/20250507-00/?p=111157
[1] https://devblogs.microsoft.com/oldnewthing/20250507-00/?p=111157
That's quite a trip down Memory Lane. It leaves me wondering whether the modern renditions of those software packages are functionally any better than the versions these reference.
(Its all about getting work done. If we're brutally honest about how we use our systems then we really only use a quite small subset of what's offered by most applications -- if you spent the time to learn every last feature you'd likely not get any work done and you'd finish just in time for the next upgrade.)
Memory Lane
Procomm and Foxbase were my daily tools. Fond memories.
Heh, I'd forgotten all about that. Good times.
Remember how to use it? You specified the icon desired by a comma-delimited variable at the end of the icon path.
I wrote a game for iOS for the fun of it. The code for the game, including the graphics (which were defined in the code, rather than assets), came in at a little over 8K.
How galling then that my game, the value of the product, is dwarfed by the metadata and icons which need to be submitted along with it.
And the situation, with AI, is only going to get worse. The industry has forgotten how to be efficient.
(Old C developer here, shouting at the clouds again)
> shouting at the clouds
That's OneDrive being a pain, again.
My brother-in-law was a developer who worked on a system running on a Z80 so had to keep the whole package below 64k. They were masters of compact coding and would put a lot of effort into finding gaps in memory usage to squeeze in a few bytes more code. When they decided to change to a higher spec CPU they suddenly had MBs to play with and they had to deal with unexpected bloat from people being less concerned about efficient coding.
Exactly. I remember writing for Z80 CP/M and writing overlays for 32k* pages so that I could use all the memory of the system.
* the Z80 could address 64k, but the TPA could only be a maximum size of 48k. The maths was easier and compatibility between different systems improved if the overlays were no bigger than 32k.
I think I've used vaguely appropriate moricons.dll icons in scenarios like the icon to run a script.
Icon fun
Worked for a company (c2010) whose main app allowed a user to drop icons on a virtual canvas. Think of something like Visio. Anyway, they decided to update the icon set for a major release. There were some 300+ icons and each one was lovingly redone in 3D with shading by a specialist company at a cost of 100 GBP per icon. There were all sorts of icons for man, woman, policeman, policewoman, male+female lawyers, car, truck, boat, etc. We showed an initial version to some customers and their response was: "We like the icons but the women's breasts are too large!"
Re: Icon fun
"The women's breasts are too large!"
Not a common complaint I would have thought.
At least not in the nation that gave us Benny Hill and the Carry On movies. :)
Re: Icon fun
Oh dear, the reverberations from yesterday’s Deutsche Bank story continue… we’re back to discussion of 19-inch racks…
OTVDM
You can in fact still run 16-bit apps on 64-bit windows with OTVDM.
Memories....
Not altogether pleasant.
Around that time I mucked around with the DOS exe header (as documented in the Wendin Operating System Toolkit†) and fiddling with offsets I could insert arbitrary data‡ in exe header which could be accessed from the file system by the program itself (at least under MS-DOS 3.3 where the executable's path was passed, in the environment?, to the running program). Pretty much what the resource compiler in the Windows SDK did for Windows exe files, I think.
At the time I wondered why the particular MS-DOS application's custom icon couldn't be inserted into its exe file in the same manner along with the other information in the pif file perhaps removing the need for PIF files.
Even then Windows and MS stuff seem to as the Discworld Assassins might phrase it: " possess certain lack of elegance. "
† a peculiar product that seemed to be inspired by DEC VMS used to implement their [1]multitasking Wendin DOS, PCNX, PCVMS products.
‡ I was trying to construct a basic SunOS4 style dynamic shared library system for MS-DOS. See Gary Syck's article [2]DDJ May 1990 OS/2 DLLs for MS-DOS
[1] https://archive.org/details/wendin-catalog
[2] https://jacobfilipp.com/DrDobbs/articles/DDJ/1990/9005/9005b/9005b.htm
I like
a lot of the tech now. Being able to watch TV shows on the bog now instead of having to read a mag. The games are so much better and we have Dwarf Fortress.
However, I have a fond, nostalgic feeling when I look at those old icons. We were stuck with a 386sx with no sound card so I'd play in Windows 3.11 with the icons. It was such a simpler time, with no Internet (that's not a it was better without Internet, it wasn't. The internet opened us to a world of info and learning). And when we finally got 56k dial up and I got a copy of Hot Dog, I spent a while making websites, that would never get published and found myself spending more time looking for design ideas, that writing the pages.
Re: I like
The games have got better. The gameplay.....not always.
Windows doesn't work without that file.
It's like the teddy bear on top of the server- take it away, and you get a complaining server