Conversation

It is a long-standing tradition for Microsoft to use a runtime copy of Windows as a part of Windows Setup. But the copy is so stripped-down, it cannot run anything but the setup program (winsetup.bin).

OR IS IT?

A mini-challenge for myself: create a semi-working desktop only based on runtime Windows 3.10 shipped with Windows 95 installer but not using any other Microsoft products.

Lots of nostalgic and weird screenshots in this 🧵 thread

13
11
1

@nina_kali_nina MINI.CAB my beloved

there used to be a page about windows 3.1 minification which described essentially what you’re attempting akko_giggle i used it as a basis for my win3flash project

2
0
0

@nina_kali_nina (it was not on win31.de, and i don’t think i saved a link, so i won’t find it now)

0
0
0

"Mini Windows" based on Windows 3.10 shipped with Windows 95

Step 1: boot from a rescue MS-DOS 6.22 floppy
Step 2: partition and format disk
Step 3: install minimal DOS using `sys c:`
Step 4: copy mini.cab and extract from Windows 95
Step 5: extract the archive
Step 6: realise that Windows requires HIMEM.SYS, copy the stupid driver from the rescue floppy and add it to CONFIG.SYS

3
0
1

@speaktrap @nina_kali_nina https://sdomi.pl/weblog/07-windows-3-flash-edition/

the blogpost is not up to my modern standards, remember it’s nearly a decade old

3
0
0

Okay, mini.cab obviously doesn't have any shell (be it progman or anything else). But we can edit SYSTEM.INI to point it to Calmira, right?

We sure can, but Calmira needs a bunch of DLLs that are missing in the mini.cab. That's true for Calmira, and that's true for things like WinBar.

2
0
1

@Baa I think so, yes. It was a part of Windows Setup since Windows 3.0; Windows 95, 98 and Me all use Windows 3.10 as its Windows "PE"

0
0
0

@domi @speaktrap this is the opposite of what Compaq did with their laptops: their Setup utility is a Windows 3.1 runtime that needs to be booted from a floppy florshed

0
0
1

There are multiple DLLs that our mini.cab system is missing for Calmira: COMMDLG.DLL, SHELL.DLL, TOOLHELP.DLL and MMSYSTEM.DLL

WinBar, a much simpler program, only misses COMMDLG and SHELL.

But surely we can at least start a Windows 2.0 application, like ClearView or HP Calc, and confirm that our mini.cab Windows works?

Well, no. Windows 1/2 applications are rejected by the mini.cab as the shell with no error message, the system just quietly exits.

So, what can we do? We can find a program that ships its own copy of COMMDLG and SHELL! What now?!

Windows 3.0 did not have CommDlg or Shell libraries, so it was common for programs compiled with later MSVC versions to include these libraries with the program. You can steal the libraries from AutoCad R12. I got them from a tool called Archive Master (ARCMST02.ZIP).

This allows me to start the WinBar and even install Calmira. Alas, Calmira won't work without Windows Multimedia Subsystem, and I don't think these libraries are bundled with anything. Okay.

2
0
1
@nina_kali_nina This is gonna be linear fediverse. *sits down with drink*
0
0
0

Okay, at least we now can continue our quest to make "Windows with as little Windows as possible" from Windows itself.

Launching Windows 2 programs from WinBar shows the probable reason why mini.cab Windows rejects Windows 2 programs as a shell: compatibility!

But that's fine, at least we got ourselves a nice calculator.

mini.cab comes without any programs, so I need to find alternatives for the Notepad and Paint, too.

Notepad is easy, there are many good editors that just work, but Paint is not so. And, regrettably, PC Paintbrush doesn't work well on Windows 3.x. We need to find something better as a Paint replacement for this install.

3
0
0
@nina_kali_nina Wonder how much Microsoft-ness I can remove from my Win-OS/2 using this approach...
1
0
0

Okay, if our Windows doesn't have Paintbrush, we might as well try and install Photoshop, right?

It installs.. and installs...

It takes forever. I don't know why I chose to do a "full" installation, but c'mon, it's just 4 floppy disks.

I've set up some shortcuts in WinBar while the Photoshop was installing, and then...

And then Setup couldn't create a program group for the Photoshop, because there's no ProgMan and there are no groups.

Can't be helped, this is not a real Windows installation, it's just mini.cab.

2
0
1

@ltning a big chunk of it! The mini.cab comes with the kernel/user/gdi, drivers, and a handful of libraries (lzexpand, win87em). You almost certainly will need SHELL, COMMDLG and maybe COMMCTRL. I wonder if I can bring those from Wine :D I gotta try

0
0
0

But you know what? Photoshop doesn't care about the fact that this Windows isn't really a full Windows installation (or, rather, not an installation at all). It just runs. And it is much better than Paint, except for the start-up times.

But I'm running on 300 MHz Celeron, so it isn't an issue, at all. Nice.

This minimal Windows struggles to run Microsoft products, so I wouldn't dream installing IE on it, but maybe I can live with Netscape?

(thread of screenshots continues)

4
1
1
@nina_kali_nina I'm still jealous that Windows got Netscape 3.x and 4.x while we OS/2 people were still waiting for what turned out to be 2.02.. :P
0
0
0

@nina_kali_nina that was my first version of photoshop. Back when it was just a couple floppy disks! Serious nostalgia in this thread

0
0
0

Netscape 4.04 installs (with Install Shield!) and runs fine (though there's no WINSOCK.DLL, so I cannot connect to the internet just yet). I bet I can bring Trumpet Software WinSock and things will just work, but I am too tired to try.

Side note: Netscape's "Create profile Wizard" looks very similar to modern Firefox "Create profile Wizard". The powerr of legacy!

And so, I think this proof-of-concept is working: we can get a decently working Windows 3.10 based on mini.cab from Windows 95, providing that we have a couple of CDs with Windows 3.x shareware. In other words, start Windows 95, do not accept the license, use the mini.cab Windows :D I think Microsoft would've been unhappy with this usage of Windows 95 installer

7
0
0

@nina_kali_nina wow, it’s so legacy that it still says ‘his or her’ instead of ‘their’

1
0
0

@nina_kali_nina that’s exactly the dialogue i had opened (well, i use linux, it looks very slightly different on the gtk version)

0
0
0

@nina_kali_nina oh, didn't know about Editeur, French name 🙂

0
0
0

@nina_kali_nina MS-DOS 4.0 as a theoretical base is now MIT-licensed.

This experiment made me wonder if there’s any source for just enough Windows to put on top of MS-DOS 4.0 to replicate your experiment, freely available without copyright infringement.

0
1
0

@nina_kali_nina So what's the total size of that thing, with winbar but before those other monstrosities are installed?

Also, i did not know about winbar. I wish I did back then. What I did have however was WPS for WIndows. It was borderline usable, but of course had none of the actual OS/2 WPS bells despite looking similar.

1
1
0

@nina_kali_nina I think the CDU had done so at some point with windows 3

2
0
0

@ltning the mini.cab is a bit over 440 kB (815kB extracted), extract.exe is another 46kB, and commdlg+shell are 120kB combined. WinBar is 128kB.

0
0
0

@nina_kali_nina I’ve always wanted to see if someone could manage to turn mini Windows into a fully-functional OS! Back when I was a kid I tried it with the \failsafe.drv environment DriveSpace 3 permanently installs into the host drive, but couldn’t manage to make anything other than some Windows Entertainment Pack games work (notably Chess I believe) due to the missing core DLLs

0
0
0

Final notes: I found toolhelp.dll installed in my Windows directory. It was either Photoshop or Netscape that did it. It means that the only library I'm missing from making this less-Microsoft-Windows is MMSYSTEM.DLL

But I don't suppose anything shipped it...

3
0
0
@nina_kali_nina They still do it as Window PE and it's much easier to use other programs in it.
0
0
0

@nina_kali_nina heh. On the mac I used to copy photoshop to 'finder' and boot directly to ps. Worked for pagemaker, too :-) U shudder to think what you'd do to mac os ;-)

1
0
0

@nina_kali_nina

MMSYSTEM.DLL. Now there's a name I haven't heard in a long time.

0
0
0

@Nia0 I checked the 7.1 CD available on WinWorld, it doesn't have anything Windows-related.

That being said, making tiny Windowses is a common entertainment for a certain group of geeks. The relative novelty here is using mini.cab alone, and nothing else from M$.

It helps significantly that someone else has confirmed (back in 2015) that Windows 95 mini.cab is based on unchanged Windows 3.10 from 1992.

1
0
0

@nina_kali_nina the Chinese Dos Union, I think?

it was for their win 3.11 'on a single floppy' release
like the 'dos 7' they made from windows 98(?) they tore out a first stage of a windows installer and repackaged it

I'm hazy on the details, and have been looking for the source since I posted...

0
0
0

@nina_kali_nina do you think univbe.drv or vbesvga.drv will work in this?

1
0
0

@ltning I don't think it's compressed 🤔 and no idea if I can use UPX in EXE and DLLs... especially for the kernel. But sounds fun

1
0
0

@hp I don't see why it wouldn't! I heard it does, but I haven't tried it myself.

0
0
0

And here is where I was wrong. There is a program called "Mom For Windows 2.0", which is a share-ware PIM system. I don't care about PIMs, what I care about is that it comes with MMSYSTEM.DL_.

I brought expand.exe from MS-DOS 6, unpacked the DLL, put it to the my crippled Install Windows 95 folder, and... a miracle: Calmira now boots. Only one extra step left to make this system almost-usable: get a newer Calmira version.

1
1
1

@nina_kali_nina This is about as complex as I need photoshop to be.

1
0
0

@sed I suppose this was a comment to the PS 2.5 for Windows? Yeah, it's pretty great. I recommend PhotoShop 4, because it has good layer support. I've made a small review of running illustration software on an under-powered 486 laptop a while ago: https://tech.lgbt/@nina_kali_nina/114790967650274786

1
0
0

@nina_kali_nina I started developing and scanning film at home, I wonder if this would be a good experiment to tinker with for post-processing... 🤔

1
0
0

@sed this thing supports TWAIN scanners, so you might want to give it a go. But I suppose GNU IMP is more functional and totally free

1
0
0

Wow, this is a cool InstallShield you have here. Would be such a shame if it error'ed during the installation... (Twice: cannot create program groups, cannot access NOTEPAD)

But lo and behold, Calmira XP works on this weird Windows that isn't even Windows 3.1 but "pre-installation environment for Windows 95" with a few extra programs installed on top of it.

At this point, the system is barely distinguishable from a real Windows 3.1 install. It only misses the control panel (but all the settings can be changed by editing INI files), and the standard applications (but who needs them when JAVA is already installed in the system as a part of Netscape).

So, this concludes my little experiment of converting a Windows 95 "pre-installing environment" into a desktop.

10
1
1

@nina_kali_nina Are you sure that's InstallShield? Looks more like Inno Setup to me.

1
2
0

@nina_kali_nina argh. Must fix power supply. I'm a netBSD guy on macs but the classic is sacrosanct. Mac only. I have all those floppies!

0
0
0

@nina_kali_nina beyond unhinged, loving this, cannot look away. Wasn't ready for the thread to keep going on!

0
0
0
@nina_kali_nina Even .sys files can be UPXed, but with .exes with a lot of extra data segments it tends not to work. The weirdest failure is xcopy.exe - it simply won't find any files to copy if you upx it..
0
0
0

@nina_kali_nina True, considering how old-school developing film feels, I thought going with some older software for post-processing might fit the aesthetic. 😂

0
0
0

@nina_kali_nina very fascinating and great sleuthing. I wonder if there's any market out there for ancient win31 kiosk mode applications.

1
0
0

@nina_kali_nina *standing ovation* what a cool thread to wake up to :D congrats on your successful install of frankenwindows :D :D :D

0
0
0

@nina_kali_nina @Nia0 China DOS Union made Mini-Windows floppy disks in Simplified Chinese and English respectively.

The less-known English one is archived here - https://www.singlix.com/trdos/8086/archive/etc/MSDOS_7.1/mwin3.zip

1
0
0

@nina_kali_nina eep

I've seen a few industrial scada panels using embedded 95/2k and xp am not suprised 3.x still in the field. Trains tho.... Ugh

0
0
0

@nina_kali_nina this is an abomination, straight to jail. Well done indeed!

0
0
0

@jernej__s I'm not sure and you're probably right! Thanks

0
0
0

@nina_kali_nina has anyone ever told you that you're cool?

cuz you're cool

1
0
0

@nina_kali_nina finally someone did it what I’ve been wanting to do for years

1
0
0

@cr there are a few similar projects around, but it seems others used Windows 3.1 distribution to find missing libraries, and I think this is cheating

0
0
0

@win98se @nina_kali_nina @Nia0 The one question I had after the rest of this amazing thread was whether this setup would fit on a floppy - sounds like it does!

1
0
0

@nina_kali_nina so cool, wonder if anyone ever tried this. Wonderful read!

0
0
0
@domi @speaktrap @nina_kali_nina I wonder what we could cram into modern SPI chips (32MB, but memory-mapped to 16MB).
You could cram IFD (4K), ME (5M), BIOS (CBFS - coreboot w/libgfxinit + SeaBIOS) (8M) into the upped 16M boundary, giving you 16MB of SPI space just for the floppy image.

If we would hack CFBS to support splits, you could get up-to 22MB of space to play around with
1
0
0

@cthos there's something nice about the whole Motif aesthetics, too

0
0
0
@nina_kali_nina I think China DOS Union already did that before
1
0
2

@fun yes and no. They apparently had a minimal release of WfW, which is a completely different thing. It also wouldn't make much sense to use Windows PE for that.

0
0
2
@elly @domi @speaktrap @nina_kali_nina coreboot + SeaBIOS is a lot smaller than 8M
1
0
1

@nina_kali_nina oooh, this is something I always had planned as well, including the LFN-capable 3.x-usable defrag.

1
0
0

@nina_kali_nina

Maybe its enough to have the empty folders availible to get around the programm group errors.
I would expect the installers only copy the link files into default folder and cant do so, because folder not found

0
0
0
@mirabilos @nina_kali_nina win9x's defrag works in 3.1, and I have a mini-win31 "bootdisk" for this.
0
1
0
@noisytoot @domi @speaktrap @nina_kali_nina Please *carefully* read what I wrote.
I explained that SPI on modern Intel CPUs (likely AMD as well) is memory-mapped to 16MB, which means that BIOS region cannot overlap the 16M boundary and has to be placed either in upper or lower portion of the SPI flash.
If you will try to create a BIOS region that overlaps 16MB boundary, you'll crash (and burn) in bootblock.

This limitation is present in all Intel CPUs, including PantherLake (which I find intriguing because development board in the lab has a 64MB SPI flash, but I digress).

For this cursed experiment you would place IFD + ME + BIOS in upper 16MB and create another flash region in lower 16MB region where you would store the OS image. Doesn't matter that coreboot with SeaBIOS is smaller than 8MB.
0
0
2

@nina_kali_nina Oh god, Netscape…I was there 🥹
Love you always 😁

0
2
0

@nina_kali_nina If Calmira is too high-tech with commdlg.dll, there‘s Doors, a german Finder clone for Windows 3.0, gives you Desktop and Filing at once :)

It has some funky features, like it can grab the menu bar from apps to use it in the global top menu. Furthermore it has an editor that supports formatting attributes in plain text files.

https://archive.org/details/doors-v1-kryoflux/

1
0
1

@elosha I knew about it but never tried, I wonder if it's nicer than Progman

0
0
1

@nina_kali_nina do Cygwin programs (that bring their own Cygwin DLL) work?

Case in point, jupp for Win32.

Take one of the JWIN*.* files from https://mbsd.evolvis.org/MirOS/dist/jupp/ and extract. The normal method of installing is to right-click the SETUP.INF file and choose “Install…”, but you can just move all the files to a dedicated directory, create subdirectories charmaps (just the file klingon) and syntax (the *.jsf files), and run it; the INI also has a shell shortcut, but that’s not necessary. It will figure out the paths relative to the .EXE.

0
0
0