Looks like it can even run Windows 96. Incredibly cool. I'll have to try if it runs my old Slackware kernal 1.2.13 some time. I used it with a 4MiB, 25Mhz 386 DX back in the time, so it should.
Good question. I ran Slackware Linux and DOS 5.0 on mine. I think Win95 was my Pentium 100 MHz already so it sounds a bit sus, but the FAQ section of OP had items about Win95, that is where I got the idea from.
It "technically" can - i used Win95 on an AMD 386DX with 4MB of RAM back in the 90s for a little. Most of the time was spent waiting for the computer to do something while the HDD was constantly working.
The Pentium MMX with 32MB i replaced it with was MUCH faster, practically everything was instant.
I tried installing it on my 20mhz 486 IBM but the install never would finish even though the minimum specs listed 386. I always thought that was being too generous. I did use it on faster 486's at some point in school (I think 66mhz or faster?)
with a minimum of 4M RAM [1]. I have a machine with twice that clock and the twice that RAM that a friends parents wanted to toss out[2]. I spent the better part of a day getting Windows 3.11 and Office 4.3 to run. Playing around with it for a bit, I highly doubt that Windows 95 would be anything but endlessly frustrating on such a machine. I was not masochistic enough to try.
I ran Windows 95 on a 386SX-16 with an 80387, with 5MB of ram for a year as my main machine. It ran about as well as 3.1 did. The only real drawback was the disk space required for 95 over 3.1 + DOS.
Back in the mid 90’s I got it to “run” on a 386, but it was miserable. It was basically wondering if it was hung or just really slow on every command or mouse click.
Yes. I remember one of the MS guys saying the goal for win 95 was win32s equivalent performance on a 386 with 4 Mb ram. But win32s performance on that hardware was crap :)
We had Win95 running on a 25MHz 4MB FPRAM 286 back in high school. Poor teacher, half of first period was roughly how long it took to boot up, only for them to exit into DOS mode because the grading software and report card software was DOS-native and would hang if you tried running it under the GUI.
> Windows 95 had a beta build for 286 systems, which is what this system 'ran.'
I think you are confused. There was an Windows 95 build 286, but despite its name it didn't run on a 286 – it was just an incrementing counter which happened to have reached that number.
At some point early in Windows 95's development, Microsoft dropped the standard-mode only 286 kernel, KRNL286.EXE. They also dropped 16-bit-only standard mode from KRNL386.EXE; but KRNL386.EXE required a 386 even for standard mode.
The earliest leaked Windows 95 build, build 22, still has KRNL286.EXE in it, but it is unchanged from Windows for Workgroups 3.11, and doesn't actually work – other Windows 95 components require new APIs which Microsoft added to KRNL386 but didn't bother adding to KRNL286.
In principle, you could likely patch early Windows 95 builds to run on a 286, but I don't think anyone has actually tried. At a minimum, you'd need to add the missing APIs to KRNL286.EXE
Taking you at your word, I suspect what you may have actually saw was https://en.wikipedia.org/wiki/Calmira – an open source project which gives Windows 3.x a Windows 95-style interface – or if not Calmira, maybe someone else implemented the same idea independently. But this was nothing to do with Microsoft; Microsoft could have done something like this, but they had no commercial interest in doing so.
> Bet you don't even know about Windows 97.
That was just an unofficial distro of Windows 3.11 with Calmira bundled.
Independently, "Windows 97" was also what Microsoft once planned to call "Windows 98", but they weren't able to finish it in time to release it in 1997
I don't know if they have some kind of magically genius caching system but the chip only has 512kb of SRAM and a little cache and the rest has to be managed by flash memory which is like 30+ times slower so I dunno about the performance of that.
At least the Wolfenstein screenshot is VGA, not EGA. Yes, it looks weird with that dithering effect, but it's still VGA (too many/wrong colors for EGA, and also: Wolfenstein never was released with EGA graphics in the first place)
Also this doesn't emulate ISA bus, where one could plug one of those "multi-io" cards to get rs232/printer.
Which is a shame. There are plenty of GPIO pins to fit full ISA on RP2350 (at least on "B" variant), and those GPIO are supposedly 5V-tolerant (with sufficiently recent silicon revision). So hardware-size, it's just a matter of wiring an ISA slot directly to the RP chip.
it would be awesome if there was an ISA bus emulation using some sort of modern protocol. You could create "modern" ISA cards using an RP2350 on every card that does the emulation, to split emulation between multiple RP2350's (one emulates a VGA card, one emulates a sound card, one emulates a network card, etc.)
Bonus points for a standardized connector that everyone could develop towards. Imagine a tiny ISA PC that you could place on your desktop, swap miniscule (ISA)-cards in and out of, and play retro games etc.
"Modern" tiny ISA would probably be LPC [0] which is a relatively simple encapsulation/serialization format for ISA that preserve full software compatibility, and can transport ISA signals over as few as 8 pins.
This thing was quite ubiquitous for inter-connecting some low-speed things within PC motherboards in the early 2000s. Although physically separate LPC cards did exits, those were rare and connector/pinout was never standardized.
> Then it would be possible to reuse old embedded equipment.
Unlikely, virtualization/emulation has been a thing well before this project and you can just buy USB to RS232 adapters. There are GPIO solutions for industrial PCs other than the parallel port. Or you can simply buy new industrial PCs which have those ports.
If you find an industrial appliance controlled by genuine old PC hardware that hasn't been replaced, the RS232 ports are the least of your concerns.
In my experience, such machines usually have something insanely proprietary plugging into a custom ISA card, and whatever is connected to it usually doesn't take too kindly if the bus timings are off. And neither does the accompanying bare metal software that relies heavily on timing loops and hardware peculiarities.
I've been holding on to a couple of fanless industrial PCs as much for their cases (I could drive my truck over one, and it wouldn't even make a dent) as for any possible future uses. As time moves on, being able to use them looks less and less likely.
Overrated surely? It's a pretty bog standard MCU, no wireless support, mediocre deep sleep. I don't know why you'd pick it over an ESP32 or nRF5x.
The only standout feature is PIO which is definitely interesting but very niche. It's also patented so say goodbye to any portability or FOSS vibes. (If you want a FOSS version btw, check out https://baochip.com/)
If it didn't have the Raspberry name behind it nobody would even have heard of it.
Are you kidding me? It costs a fraction of the competition and you can use just about any pin for anything you want! It makes designing boards for the RP series so simple and easy!
Contrast that with STM32 where you have to constantly reference the data sheet to make sure you're using the correct pins for say, I2C when you're running in a particular mode. And since you're running in that mode, you now can't use other pins for certain things. Ugh! I hate it!
Then there's the issues with picking the right-size part number and making sure the pins you want are 5V tolerant, checking that you're using the correct ADC, and... Ugh! It's a pain in the ass!
Other chips aren't much better as they all have those same problems.
ESP32 is nice because of the zillions of built-in peripherals but configuring the damned thing can get really complicated really fast. It's so complicated, in fact, that they had to make a Makefile (as in `make menuconfig`) that rivals the Linux kernel in the sheer number of options/submenus.
nRF5x also has completely configurable pins, and if you're worrying about awkward pinouts making PCB design slightly more annoying then you're definitely not in a cost sensitive project.
If you want something that can do some dumb buttons and lights handling on a mass consumer device, it's not ideal.
I would say it is still underrated.
PIO combined with DMA and the independent bus SRAM banks allow for immense combinations of capability.
If you want to do something digital and specific beyond a few MHz the the RP2350 raised the ceiling of what you can do before requiring hardware or FPGA.
It still has some areas where it could be improved, but most of thise would not have been apparent until you really stretched the design.
Having extra PIO GPIO without physical pins but the ability to configure connecting pairs together in software would add a lot of capability.
Perhaps an interesting test/benchmark would be to get a microcontroller to pretend to be an SRAM (or better yet two independently accessed SRAMs) while outputting the lyrics to still alive on a serial link.
The virtual SRAM performance characteristics of timing tolerances and latency would be a respectable approximation for arbitrary digital signal handling that any particular MCU might be able to manage.
Holy cow, a 386 with VGA and SoundBlaster on a $1 MCU?
I recall VICE emulating the Brotkasten on 386 PCs some thirty years ago, later UAE doing it for Amiga. How long til my currently running system (anno 2016) is being emulated?
Maybe never with current technology? Looking just at the CPU and assuming you need comfortable IPC overhead for emulation, the 386 was from early in the Dennard scaling era and modern CPUs are 1000x or more faster single-thread. Since maybe 2012 that hasn't moved anywhere near that, certainly less than 10x.
For the GPU things are potentially looking better! But since distributed shaders/kernels are higher-level compiled for your specific device, there's less of a need for emulation.
true, but the question was about "my currently running system (anno 2016)" - which means intel core most likely. And at that generation, there requirements for precise timing is extremely rare, it's mostly PCI/PCIe devices and they can be shared with VMs just fine.
I don’t know how fast it is but that does not really follow. They added those instructions so that Linux would boot. Linux assumes Pentium and no longer boots on 386 or even 486 for the latest kernels.
The presence of instructions first added in the Pentium really does not tell you anything about performance.
The problem is PC programs assume 640kb of RAM and the RP2350 has 512kb + 16kb cache SRAM so anything that goes past that has a sudden 40 cycle access delay.
So even if you account for the RP2350 being 6 times faster than the RP2350, I think the emulation would randomly start to stutter a lot in certain circumstances waiting to access that part of the memory.
65 comments
[ 5.4 ms ] story [ 59.4 ms ] threadThe Pentium MMX with 32MB i replaced it with was MUCH faster, practically everything was instant.
s/technically/allegedly/
with a minimum of 4M RAM [1]. I have a machine with twice that clock and the twice that RAM that a friends parents wanted to toss out[2]. I spent the better part of a day getting Windows 3.11 and Office 4.3 to run. Playing around with it for a bit, I highly doubt that Windows 95 would be anything but endlessly frustrating on such a machine. I was not masochistic enough to try.
[1] https://en.wikipedia.org/wiki/Windows_95#System_requirements
[2] https://goliath32.com/hw/machines.html#pc386
Bet you don't even know about Windows 97.
I think you are confused. There was an Windows 95 build 286, but despite its name it didn't run on a 286 – it was just an incrementing counter which happened to have reached that number.
https://betawiki.net/wiki/Windows_95_build_286
At some point early in Windows 95's development, Microsoft dropped the standard-mode only 286 kernel, KRNL286.EXE. They also dropped 16-bit-only standard mode from KRNL386.EXE; but KRNL386.EXE required a 386 even for standard mode.
The earliest leaked Windows 95 build, build 22, still has KRNL286.EXE in it, but it is unchanged from Windows for Workgroups 3.11, and doesn't actually work – other Windows 95 components require new APIs which Microsoft added to KRNL386 but didn't bother adding to KRNL286.
https://betawiki.net/wiki/Windows_95_build_22
In principle, you could likely patch early Windows 95 builds to run on a 286, but I don't think anyone has actually tried. At a minimum, you'd need to add the missing APIs to KRNL286.EXE
Taking you at your word, I suspect what you may have actually saw was https://en.wikipedia.org/wiki/Calmira – an open source project which gives Windows 3.x a Windows 95-style interface – or if not Calmira, maybe someone else implemented the same idea independently. But this was nothing to do with Microsoft; Microsoft could have done something like this, but they had no commercial interest in doing so.
> Bet you don't even know about Windows 97.
That was just an unofficial distro of Windows 3.11 with Calmira bundled.
https://crustywindo.ws/Windows_97
Independently, "Windows 97" was also what Microsoft once planned to call "Windows 98", but they weren't able to finish it in time to release it in 1997
probably faster downloading it than searching around in the attic ;-)
Also this doesn't emulate ISA bus, where one could plug one of those "multi-io" cards to get rs232/printer.
Which is a shame. There are plenty of GPIO pins to fit full ISA on RP2350 (at least on "B" variant), and those GPIO are supposedly 5V-tolerant (with sufficiently recent silicon revision). So hardware-size, it's just a matter of wiring an ISA slot directly to the RP chip.
Bonus points for a standardized connector that everyone could develop towards. Imagine a tiny ISA PC that you could place on your desktop, swap miniscule (ISA)-cards in and out of, and play retro games etc.
This thing was quite ubiquitous for inter-connecting some low-speed things within PC motherboards in the early 2000s. Although physically separate LPC cards did exits, those were rare and connector/pinout was never standardized.
[0] https://en.wikipedia.org/wiki/Low_Pin_Count_bus
Unlikely, virtualization/emulation has been a thing well before this project and you can just buy USB to RS232 adapters. There are GPIO solutions for industrial PCs other than the parallel port. Or you can simply buy new industrial PCs which have those ports.
If you find an industrial appliance controlled by genuine old PC hardware that hasn't been replaced, the RS232 ports are the least of your concerns.
In my experience, such machines usually have something insanely proprietary plugging into a custom ISA card, and whatever is connected to it usually doesn't take too kindly if the bus timings are off. And neither does the accompanying bare metal software that relies heavily on timing loops and hardware peculiarities.
The only standout feature is PIO which is definitely interesting but very niche. It's also patented so say goodbye to any portability or FOSS vibes. (If you want a FOSS version btw, check out https://baochip.com/)
If it didn't have the Raspberry name behind it nobody would even have heard of it.
Contrast that with STM32 where you have to constantly reference the data sheet to make sure you're using the correct pins for say, I2C when you're running in a particular mode. And since you're running in that mode, you now can't use other pins for certain things. Ugh! I hate it!
Then there's the issues with picking the right-size part number and making sure the pins you want are 5V tolerant, checking that you're using the correct ADC, and... Ugh! It's a pain in the ass!
Other chips aren't much better as they all have those same problems.
ESP32 is nice because of the zillions of built-in peripherals but configuring the damned thing can get really complicated really fast. It's so complicated, in fact, that they had to make a Makefile (as in `make menuconfig`) that rivals the Linux kernel in the sheer number of options/submenus.
I would say it is still underrated.
PIO combined with DMA and the independent bus SRAM banks allow for immense combinations of capability.
If you want to do something digital and specific beyond a few MHz the the RP2350 raised the ceiling of what you can do before requiring hardware or FPGA.
It still has some areas where it could be improved, but most of thise would not have been apparent until you really stretched the design.
Having extra PIO GPIO without physical pins but the ability to configure connecting pairs together in software would add a lot of capability.
Perhaps an interesting test/benchmark would be to get a microcontroller to pretend to be an SRAM (or better yet two independently accessed SRAMs) while outputting the lyrics to still alive on a serial link.
The virtual SRAM performance characteristics of timing tolerances and latency would be a respectable approximation for arbitrary digital signal handling that any particular MCU might be able to manage.
I recall VICE emulating the Brotkasten on 386 PCs some thirty years ago, later UAE doing it for Amiga. How long til my currently running system (anno 2016) is being emulated?
Figure 6 in "A New Golden Age for Computer Architecture" is a good representation of that effect: https://dl.acm.org/doi/epdf/10.1145/3282307.
For the GPU things are potentially looking better! But since distributed shaders/kernels are higher-level compiled for your specific device, there's less of a need for emulation.
This reminds me of the 8088mph demo - 1k colours in CGA, and a bunch of other impressive stuff.
8088 MPH: We Break All Your Emulators (oldskool.org)
319 points by drv on April 8, 2015 | hide | past | favorite | 99 comments
https://news.ycombinator.com/item?id=9338944
https://trixter.oldskool.org/2015/04/07/8088-mph-we-break-al...
The right software -- really does add value(!) to (let's-just-say-it-isn't-an-nVidia-GB300!) hardware, now doesn't it? :-)
I don't know about anyone else -- but I'm sold!
The value proposition on this one is truly awesome!
I've been meaning to rediscover the CICA and Simtel collections. Maybe that's what I needed!
The presence of instructions first added in the Pentium really does not tell you anything about performance.
Or Plan9 for i386.
It looks like I would have to build my own frank board. Any off the shelf boards?
https://museum.syssrc.com/
So even if you account for the RP2350 being 6 times faster than the RP2350, I think the emulation would randomly start to stutter a lot in certain circumstances waiting to access that part of the memory.