VOGONS


Reply 20 of 29, by Rikintosh

User metadata
Rank Member
Rank
Member
serialShinobi wrote on 2023-06-09, 22:20:
Well as many people may already know, I have had ideas that are, like yours, a large project. […]
Show full quote

This idea is great, I've always wanted something small and more practical than a huge 28 lbs case.

but 386sx is painful. I believe the sweet spot would be something like a 166 mmx (at least for my needs).

I once envisioned a PCI-Express card that contained a super socket 7 era chipset, and a processor, as long as the ram, sound and video card were emulated under software, it would greatly reduce the PCEm/86box requirements.

Well as many people may already know, I have had ideas that are, like yours, a large project.

But to try to break it down with your ideas in mind - you would still need your team of programmers to use opensource BIOS. Otherwise you get a machine that has proprietary BIOS. Either way it is a form of hardware drivers, mostly for the chipset. For the P166 w/ MMX and socket 7 (quoting retro web):

The Intel 430TX PCIset (430TX) consists of the 82439TX System Controller (MTXC) and the 82371AB PCI ISA IDE Xcelerator (PIIX4).

There's a level of magnitude difference in hardware level programming. You can see this by consulting data sheets for the above mentioned components. And then you need to have parts under test to get the proper input and output to various components, namely ASICs et al.

This is why I like the original IBM AT era so much because I now have this huge collection of books from the market in those days. Costed me hundreds of dollars in out of print books.

With this time frame I can learn the basics of hardware without the "microprocessor course" feel where it's
humbling to ask the instructor about embedded systems. You might know what I mean by this if you saw youtube videos. It's stuff you don't get to until much later in college.

Would rather do the real thing. Which lately, speaking of my 486 & 586 builds, has been more of a jumping off point.

This is really interesting, because I once asked myself why nobody ever tried to develop a single open source bios and from it, generate forks to adapt it to different hardware.

A mini 386 could be quite charming, especially if the FPGA was a custom board, or fitted onto a dumb board that mimicked a 386 motherboard, and each isa slot is a pin header to put jumpers on, but not jumpers, would be mocap miniatures of isa real boards, then the emulation would be set according to a certain jumper arrangement, and each isa board mocap would set up a model of board by looping in the jumpers header when inserted. That would make even the most cheapskate to open your wallet

Take a look at my blog: http://rikintosh.blogspot.com
My Youtube channel: https://www.youtube.com/channel/UCfRUbxkBmEihBEkIK32Hilg

Reply 21 of 29, by Jo22

User metadata
Rank l33t++
Rank
l33t++
serialShinobi wrote on 2023-06-09, 22:20:
Well as many people may already know, I have had ideas that are, like yours, a large project. […]
Show full quote

This idea is great, I've always wanted something small and more practical than a huge 28 lbs case.

but 386sx is painful. I believe the sweet spot would be something like a 166 mmx (at least for my needs).

I once envisioned a PCI-Express card that contained a super socket 7 era chipset, and a processor, as long as the ram, sound and video card were emulated under software, it would greatly reduce the PCEm/86box requirements.

Well as many people may already know, I have had ideas that are, like yours, a large project.

But to try to break it down with your ideas in mind - you would still need your team of programmers to use opensource BIOS. Otherwise you get a machine that has proprietary BIOS. Either way it is a form of hardware drivers, mostly for the chipset. For the P166 w/ MMX and socket 7 (quoting retro web):

The Intel 430TX PCIset (430TX) consists of the 82439TX System Controller (MTXC) and the 82371AB PCI ISA IDE Xcelerator (PIIX4).

There's a level of magnitude difference in hardware level programming. You can see this by consulting data sheets for the above mentioned components. And then you need to have parts under test to get the proper input and output to various components, namely ASICs et al.

This is why I like the original IBM AT era so much because I now have this huge collection of books from the market in those days. Costed me hundreds of dollars in out of print books.

With this time frame I can learn the basics of hardware without the "microprocessor course" feel where it's
humbling to ask the instructor about embedded systems. You might know what I mean by this if you saw youtube videos. It's stuff you don't get to until much later in college.

Would rather do the real thing. Which lately, speaking of my 486 & 586 builds, has been more of a jumping off point.

The 286/386 and perhaps 486 generation can still be managed by discrete component, so complexity is still manageable, I think.

For later generations, a replica or functional equivalent of a popular chipset would be recommended. i815 or 440BX maybe?
Virtual PC relied on the latter due to its compatibility.

This "386SX" handheld (a DM&P Ali M6117 really), contains s miniature motherboard with a C&T F65535 A chipset VGA chip.

https://yeokhengmeng.com/2023/06/teardown-and … iew-of-hand386/

https://hackaday.com/2023/06/06/that-handheld … ets-a-teardown/

And Windows 95 doesn't run that bad on a 40 MHz 386 processor. In my opinion, some have higher demands (you spoileds brats! 😜).
Back in the 90s, my father had a 386DX-40 with 16 MB RAM running it.
With enough RAM and good motherboard cache, it's fine. Way better than a 486DX33 at half the memory.
A fast HDD interface (IDE caching controller or SCSI) makes a nice extra boost.

Personally, I ran many DOS games smoothly on a 10 MHz 286 PC with 0 waitstates (physical setup rather than PCem).
The PC was (is) very quick once the bottle necks were eliminated (0 waitstates, 10 MHz bus, CF card, 16-Bit ISA VGA with VBE 1.x TSR and RAMBIOS loaded) etc.
It was running smoother than a Compaq 486 I once had, even.

Such a PC was fine for playing 640x480 titles, too.
Like graphics adventures, JRPGs, Japanese Visual Novels, Windows 2/3 desktop games, flight simulators etc.

An 386SX can do similar, if the infrastructure is right.
No really, it's just slightly worse than a 286 at same clock speed. 🙂
If the bottlenecks are being removed, the clock speed is secondary.
I'd even say that underclocking for 0 WS operation is worth a try.
Just get ISA beyond 8 MHz! It's a joke at that slow speed.

Shooting games are different, of course. Especially 3D types you guys are all seemingly so fascinated by.
A Pentium MMX at 166 MHz or even better, at 200 MHz up, is a good idea here.
Or maybe a Pentium II, even. At this point, let's better do put wood behind the arrow. 🙂
Games like Descent 2 really shine if being run at 640x480 or 800x600 pels resolution.
Higher resolutions will also be helpful for 3D helmets or shutter glasses (S3 cards were generally compatible with LCDBios) .

We may consider adding an S3 ViRGE chip, as an extra. It's cheap, doesn't require much support chips and does well for DOS titles.
Its drivers support DCI and resolutions of 1600x1200 in Windows 3.1x.
Some models had a 3,5mm jack for shutter glasses, too.
Some later revisions even have partially usable Windows 9x drivers for Direct3D, in addition to native S3D API.

Edit: Speaking of FPGAs, they're still short on I/O pins these days.
That's why most projects limit themselves to using "castrated" processors with a lower number of I/O pins (8088, 386SX, Pentium Overdrive etc).
Supporting ISA bus physically might be more of a challenge then PCIe, maybe.
Unless port extender chips are being used. They can raise the number of pins available through multiplexing or cascading (shift registers etc).

Edited.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 22 of 29, by serialShinobi

User metadata
Rank Newbie
Rank
Newbie
Edit: Speaking of FPGAs, they're still short on I/O pins these days. That's why most projects limit themselves to using "castra […]
Show full quote

Edit: Speaking of FPGAs, they're still short on I/O pins these days.
That's why most projects limit themselves to using "castrated" processors with a lower number of I/O pins (8088, 386SX, Pentium Overdrive etc).
Supporting ISA bus physically might be more of a challenge then PCIe, maybe.
Unless port extender chips are being used. They can raise the number of pins available through multiplexing or cascading (shift registers etc).

Edited.

Designing an Intel 80386SX development board

Nov 16, 2015 by Pierre Surply

"The LSE-PC aims to be a compact IBM-PC compatible development board based on an Intel 80386SX CPU and an Altera Cyclone IV EP4CE22E22 FPGA in order to emulate a custom chipset."

Unfortunately that FPGA and PCB as of 2015 didn't even have on board ISA. But the project at least is more than just learning about the instruction set. I was skimming the article and it had considerable in roads for understanding embedded systems. There were descriptions of signals from different ASICs and the 386 core on the Altera FPGA. Lots of instructions mentioned and shots of DSO wave forms.

Little edit here: I noticed that they use NG80386SXLP20 as the CPU and the FPGA itself provides the chipset. They have commercially available ASICs to add conveniences. I think you can have full ISA support if you need it with out being handicapped by the I/O lines of the Altera FPGA.

Edit: So I have been going over this idea of recompiling Windows 3.11 on modern hardware and I start hitting things like WINE and emulation quality for programs. Finally, this redoing of Win 3.11 really looks to me like Windows XP. This is what would happen if Win 3.11 was "rewritten" to support 64 - bit instructions and parallel processing. Then you've got the transition to systems on a chip...all the rewriting just to support a processor that has its bus I/o on the die itself. A big book of features if you hear my description.

Don't you want to "rewrite" windows XP to be simpler and more like Windows 3.11? Then you've got windows CE. As long as the version of windows will run 16 -bit apps for win 3.x then you're golden.

Reply 23 of 29, by Rikintosh

User metadata
Rank Member
Rank
Member
serialShinobi wrote on 2023-06-10, 14:11:
Designing an Intel 80386SX development board […]
Show full quote
Edit: Speaking of FPGAs, they're still short on I/O pins these days. That's why most projects limit themselves to using "castra […]
Show full quote

Edit: Speaking of FPGAs, they're still short on I/O pins these days.
That's why most projects limit themselves to using "castrated" processors with a lower number of I/O pins (8088, 386SX, Pentium Overdrive etc).
Supporting ISA bus physically might be more of a challenge then PCIe, maybe.
Unless port extender chips are being used. They can raise the number of pins available through multiplexing or cascading (shift registers etc).

Edited.

Designing an Intel 80386SX development board

Nov 16, 2015 by Pierre Surply

"The LSE-PC aims to be a compact IBM-PC compatible development board based on an Intel 80386SX CPU and an Altera Cyclone IV EP4CE22E22 FPGA in order to emulate a custom chipset."

Unfortunately that FPGA and PCB as of 2015 didn't even have on board ISA. But the project at least is more than just learning about the instruction set. I was skimming the article and it had considerable in roads for understanding embedded systems. There were descriptions of signals from different ASICs and the 386 core on the Altera FPGA. Lots of instructions mentioned and shots of DSO wave forms.

Little edit here: I noticed that they use NG80386SXLP20 as the CPU and the FPGA itself provides the chipset. They have commercially available ASICs to add conveniences. I think you can have full ISA support if you need it with out being handicapped by the I/O lines of the Altera FPGA.

Edit: So I have been going over this idea of recompiling Windows 3.11 on modern hardware and I start hitting things like WINE and emulation quality for programs. Finally, this redoing of Win 3.11 really looks to me like Windows XP. This is what would happen if Win 3.11 was "rewritten" to support 64 - bit instructions and parallel processing. Then you've got the transition to systems on a chip...all the rewriting just to support a processor that has its bus I/o on the die itself. A big book of features if you hear my description.

Don't you want to "rewrite" windows XP to be simpler and more like Windows 3.11? Then you've got windows CE. As long as the version of windows will run 16 -bit apps for win 3.x then you're golden.

I could be wrong but I think I've seen Windows ce on x86, even running on extremely low settings like a 486 or something like. But I think that wince only runs programs made for it, it is not able to run the "traditional exe program

Take a look at my blog: http://rikintosh.blogspot.com
My Youtube channel: https://www.youtube.com/channel/UCfRUbxkBmEihBEkIK32Hilg

Reply 24 of 29, by serialShinobi

User metadata
Rank Newbie
Rank
Newbie

I could be wrong but I think I've seen Windows ce on x86, even running on extremely low settings like a 486 or something like. But I think that wince only runs programs made for it, it is not able to run the "traditional exe program

PDAs had limited applications on them. Not the applications of a desktop. But there is room to discover a use for an early version of windows and it's apps.

These days, so called edge computing, uses embedded OSs like Windows CE on even 16 - bit CPUs.

Win 3.11, although it was once a desktop OS, is so simple that modern uses of 16 - bit operating systems are comparable.

For example, today geolocating can be a lot like Google maps and uses small 16 - bit devices that can share information over a network.

So it's possible to have windows 3.11 reused in a way that makes it a modern OS instead of a historical subject. Small simple programs running on a windows machine, even a game like solitaire from Windows 3.x could be part of a network that turns some old idea into something new.

Reply 25 of 29, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

Imaginations running wild in this thread. Open source BIOS/firmware already exists. x86 soft core in an FPGA already exists. And FPGAs come in BGA package with hundreds of I/O pins, how does that constitute a shortage of I/O?

again another retro game on itch: https://90soft90.itch.io/shmup-salad

Reply 26 of 29, by Jo22

User metadata
Rank l33t++
Rank
l33t++
bakemono wrote on 2023-06-11, 09:06:

Imaginations running wild in this thread. Open source BIOS/firmware already exists. x86 soft core in an FPGA already exists. And FPGAs come in BGA package with hundreds of I/O pins, how does that constitute a shortage of I/O?

SeaBIOS?

As far as Windows 3.1x goes, it's hard- and software-independent.
Wabi proved that in the 90s. Windows 3.1x kernal can be run without DOS, on a hardware that has whatever bus or graphics system.

The basic i386 instruction set is all it needs. Maybe iAPX286 will be sufficient, even, if krnl286 is being made run somehow.

Another miracle related to Windows 3.1x happened on Macintosh platform back in the day.
The Motorola 68000 version of SoftWindows 1.0 included a custom Windows 3.10 version with parts of the DLLs being modified to use M68k instructions.
They essentially reached out of the emulator and executed natively, if I understand correctly.

This means that Windows 3.1x could be somewhat modified to run on various platforms.
Aslong as the main components still keep an x86 ABI compatibility, Windows 3.x applications can continue to run.

Edit: Just checked. MiSTer board, for example, has 140 i/o pins? 16-Bit ISA needs about 100, leaving 40 for other purposes.
If memory bus is made separate from ISA, as it's common on 80386 and higher systems, things can be come a bit tight.
Anyway, it might still be within the limits.
The classic "everything is on ISA bus" design always is an alternative, too.
ISA, with 24-Bit address range, can address up to 16MB, which is large enough to address an reasonable amount of memory.

Edit: Never mind. I get contradicting information online.
Seems there are expansions boards that increase i/o et cetera.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 27 of 29, by serialShinobi

User metadata
Rank Newbie
Rank
Newbie

If that's the case seabios provides the modern path to getting windows free of its original hardware so it can get new features.

This sounds like a much better combination then a type 1 hypervisor, such as esxi or while at it hyper-v.

Seems like you could have Win 3.1x on any hardware seabios supports, which was my Skylake chrome book last I ran freebsd on it.

The BIOS then is already available to people you collaborate with.

Reply 28 of 29, by Jo22

User metadata
Rank l33t++
Rank
l33t++

My bad, I do have a weird writing style.
I meant to say that an open BIOS, in the form of SeaBIOS, already exists.

The Windows 3.1x comment was intended as a separate thing (though they are loosely related).
Edit: About Wabi..
https://en.wikipedia.org/wiki/Wabi_(software)
Some old videos.
Normally, things are in color. But the old Linux didn't have a working X11 color driver.

That being said, SeaBIOS has quite potential. Some users demonstrated that it is good enough to boot Windows XP.

Here's one of the few videos I saw about 10 years ago:
https://www.youtube.com/watch?v=k2VXoI3XTq4

That means that SeaBIOS could be used as a socalled "payload" for UEFI (or Coreboot) in the future.
As an alternative to CSM, so to say.

As long as SeaBIOS can be made run on a certain hardware, DOS/Windows 3.x and other OSes will likely run.
There's also SeaVGABIOS, which will provide basic VGA support.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 29 of 29, by doshea

User metadata
Rank Member
Rank
Member
serialShinobi wrote on 2023-06-10, 14:11:

Edit: So I have been going over this idea of recompiling Windows 3.11 on modern hardware and I start hitting things like WINE and emulation quality for programs. Finally, this redoing of Win 3.11 really looks to me like Windows XP. This is what would happen if Win 3.11 was "rewritten" to support 64 - bit instructions and parallel processing. Then you've got the transition to systems on a chip...all the rewriting just to support a processor that has its bus I/o on the die itself. A big book of features if you hear my description.

Don't you want to "rewrite" windows XP to be simpler and more like Windows 3.11? Then you've got windows CE. As long as the version of windows will run 16 -bit apps for win 3.x then you're golden.

What is it about Windows XP that you wish was more like 3.11? The lack of memory protection, so one process crashing can corrupt the entire operating system? The need to exit Windows to change drivers? The almost complete lack of any security?

I'm not sure what you're looking for, but would Windows NT or 9x provide it, while also providing the more modern Win32 API?

Win32 might support the parallel processing you desire, but Win16 had no thread support and I don't think that Win32s added it.

serialShinobi wrote on 2023-06-11, 03:45:
PDAs had limited applications on them. Not the applications of a desktop. But there is room to discover a use for an early versi […]
Show full quote

PDAs had limited applications on them. Not the applications of a desktop. But there is room to discover a use for an early version of windows and it's apps.

These days, so called edge computing, uses embedded OSs like Windows CE on even 16 - bit CPUs.

Win 3.11, although it was once a desktop OS, is so simple that modern uses of 16 - bit operating systems are comparable.

For example, today geolocating can be a lot like Google maps and uses small 16 - bit devices that can share information over a network.

So it's possible to have windows 3.11 reused in a way that makes it a modern OS instead of a historical subject. Small simple programs running on a windows machine, even a game like solitaire from Windows 3.x could be part of a network that turns some old idea into something new.

I think that in general anyone who wanted to emulate the Win16 API (or "Windows API", but that often means Win32 these days) back when it was modern wanted to do it because of its application base, not because it was a great API. For example, if you weren't running a PC with Windows 3.x, how would you exchange files with someone running Microsoft Office? Back then I think your options were either to convince them to export as RTF, CSV or 1-2-3, etc., or just run Office yourself.

But if you wanted to develop an embedded device or write a new operating system, I don't think you would look at the Win16 API and say "there's an API we should use/emulate". I don't think anyone whose minimum system requirement was an 80386 would say "let's make a huge API that is still based on 64K segments".

I think that in terms of embedded devices, the old operating system they might more frequently be based on was DOS, because they didn't need a Windows GUI (they might have had a custom GUI using the Zinc Application Framework or something, or just had push buttons and lights). Otherwise a good option was QNX, which didn't have the historical legacy of DOS and Win16 APIs and instead seems to have provided something much better thought-out (I haven't written any code for it myself but I hear that it was well-designed).

Perhaps my understanding of what you mean by reusing Windows 3.11 is wrong though.