News WinGPT AI Assistant for Windows 3.1 Released, Only 218KB

I'm sure it's just me being well past it, but I honestly don't see the point of 'AI' in a consumer setting.

This applies more to ChatGPT and others like it than this Windows 3.1 thingy, but when I saw this article and description of what it can provide the user, the first thing that popped (oddly) in my mind were those old Catz and Dogz applications that were interesting for about 10 minutes before the novelty wore thin.

But as mentioned, I am past it, and also incredibly cynical. And more than a little grumpy.
 
WinGPT seems to prepend every user prompt with:

You are a friendly but concise chat bot. Answer all questions in the present tense as if it is 1992, and make no reference to the current year.

 
Memory is quite limited on Windows 3.1 machines, so I tried to reduce the amount of memory needed for WinGPT, especially in sending and receiving the query and response from the OpenAI API.

The JSON responses of modern APIs aren't especially optimized for size, and OpenAI's API is no exception. I've asked the model to be brief in an effort to keep responses as small as possible. I 've also chosen not to send the text of previous turns in the API calls, even though this means that the bot won't be able to use prior conversation context. https://www.dialup.net/wingpt/
You can also trade space for CPU time using SAX-style parsing. SAX-style parsing visits each node of a tree from top to bottom, firing events for each node visited. The amount of memory required compared to fully parsing JSON is negligible, and writing a custom SAX-style parser for JSON shouldn't be too difficult.

There are existing SAX-style JSON parsers you can examine as well.

https://en.wikipedia.org/wiki/Simple_API_for_XML

https://rapidjson.org/md_doc_sax.html

But I presume you used JSMN (https://github.com/zserge/jsmn) instead, a streaming parser that visits each token sequentially, so there's only one copy of each JSON response in memory ? JSMN is also neat.

void DestructivelyUnescapeStr(LPSTR lpInput) {
int offset = 0;
int i = 0;
while (lpInput != '\0') {
if (lpInput == '\\') {
offset++;
} else {
lpInput[i - offset] = lpInput;
}
i++;
}

lpInput[i - offset] = '\0';
 
  • Like
Reactions: TechyIT223
First, I'll admit I totally got click-baited by the headline mentioning 218 kB.

You can also trade space for CPU time using SAX-style parsing. SAX-style parsing visits each node of a tree from top to bottom, firing events for each node visited. The amount of memory required compared to fully parsing JSON is negligible, and writing a custom SAX-style parser for JSON shouldn't be too difficult.
Why is memory even an issue? Win 3.1 implements the Win32 API, does it not? I always thought Windows 3.x apps could use 32-bit segments, on 386 and later. If so, then you probably have up to like 1 GB to play with.

Anyway, I've used both SAX and DOM parsers. Using one when you really want the other is always painful. For parsing documents, you'd ideally have a DOM parser that supports XPath, so you don't have to manually walk the tree.
 
I'm feeling 'Nostalgic' now. Want to install my Win XP disk and start playing some old games. But don't have any ancient hardware to fully support this OS, mobo, and CPU especially. After all, Windows XP was perfect for playing old DX8/9 games.

Some of these old PC titles which I still have on DISK/CD, can't even run properly in Windows 7 OS, let alone Win 10.

I was wondering what the heck kind of model they could squeeze into that amount of data and what kind of toy functionality it provides. I didn't think it'd be yet another client program, because how is that even news? Win 3.1 was primitive, but it wasn't like MS DOS primitive.
Check this out. Kind of Off Topic. Intel's Gaudi2 on the rise ?

Intel is claiming better price/performance than the A100 right now in FP16 workloads and is targeting beating NVIDIA's H100 by September (in FP8 workloads). This is quite an ambitious goal but the company has benchmarks to back this up.

 
I'm feeling 'Nostalgic' now. Want to install my Win XP disk and start playing some old games. But don't have any ancient hardware to fully support this OS, mobo, and CPU especially. After all, Windows XP was perfect for playing old DX8/9 games.
Just get an old Core 2 machine and slap a SSD in it. Should be a screamer, for retro gaming, and I think XP will support it just fine. The tricky part is probably going to be finding a good GPU that you can get the most up-to-date drivers for.

Check this out. Kind of Off Topic. Intel's Gaudi2 on the rise ?

Intel is claiming better price/performance than the A100 right now in FP16 workloads and is targeting beating NVIDIA's H100 by September (in FP8 workloads). This is quite an ambitious goal but the company has benchmarks to back this up.
Yeah, well Habana seems to be a long time in coming. I've heard a continual drumbeat of driver activity, but not much else about them. After Intel already scrapped Nervana, I'm sure they didn't want to see Habana fizzle out.

As for the performance claims, unlike the A100 and H100, which are mixed-use compute accelerators, Habana's are supposed to be pure-bred AI processors. So, if they know what they're doing, you'd think it should be within reach for them to compete with Nvidia.
 
Just get an old Core 2 machine and slap a SSD in it. Should be a screamer, for retro gaming, and I think XP will support it just fine. The tricky part is probably going to be finding a good GPU that you can get the most up-to-date drivers for.

I was having an old AMD FX 6300 CPU system, installed along with an 8800 Ultra GPU, running XP as the OS. But I gave the Mobo/CPU combo to someone else, who wanted some simple system for his office work. My GPU is still in working condition though. I also bought GT 1030.

But I think building a new Core 2 Machine/PC won't be that expensive these days. But what about getting an old supported Mobo, along with supported drivers ? I think some motherboard models might be hard to find in the market these days.

I can only install 4GB of DDR2/3 RAM which is more than enough for old PC games. Even 2GB might do. I would prefer buying a completely brand NEW assembled PC, rather than some old refurbished system.
 
I can only install 4GB of DDR2/3 RAM which is more than enough for old PC games. Even 2GB might do. I would prefer buying a completely brand NEW assembled PC, rather than some old refurbished system.
I seem to recall 32-bit XP had some limit of 2 GB or 3 GB? ...something about it using bit 31 of the physical address exclusively for kernel address space, which would at least mean you'd max out at 2 GB of userspace.

As for new... I'm sure there've got to be a handful of unused motherboards hiding in basements, attics, closets, and storage lockers, but it seems like they're going to few & far between. I'd probably settle for "lightly used" and hope for the best. Get a popular model and it shouldn't be too hard to replace if it dies.

I feel like there have got to be dedicated groups and websites for retro PC gaming. I'm sure there's a lot of advice and examples out there... good luck!
 
32-bit XP had some limit of 2 GB or 3 GB

It was a 3GB limitation I suppose on a 32-bit OS, with 4GB installed max system RAM. But I guess Physical Address Extension (PAE) can bypass this limitation to some extent.
 
Why what's the point of this release anyway,? Who uses this ancient OS?
Well, there are some retro-computing enthusiasts out there. Mostly, I think people just looking for a challenge by doing new things on old platforms. People still write programs for the Comodore 64, for example.

I see a definite positive side to it, because they're certainly helping to maintain the emulators and various knowledge about these platforms. That's important, as there's lots of cultural heritage, historical artifacts, and human knowledge tied up in software and data files from that era.
 
  • Like
Reactions: shoddyyMic1
Retro PC gaming is still a big thing these days. Nostalgia never goes away. 😛
Yeah, but Windows 3.1 was not known for gaming.

Most of the PC gaming I've done in my life was during that era, so I can say with some certainty that virtually none of the games being published were requiring Windows. They all preferred straight DOS, even if some might happen to work in Windows DOS boxes.

It really wasn't until Windows 95 that we got DirectX and games which required Windows.