I don't really understand why a compiler can't support Windows 95 while supporting OS/2 and DOS.
Thank you for the link Handoko.
So then which is the latest FPC version (that is intended) to support Windows 95?
Officially 2.4.4, but in practice 2.6.2 should be fine, and even 2.6.4 might work except for some minor gotchas. None of them are still officially supported anyway.One could add "winany" OS-target RTL for FPC.
Officially 2.4.4, but in practice 2.6.2 should be fine, and even 2.6.4 might work except for some minor gotchas. None of them are still officially supported anyway.One could add "winany" OS-target RTL for FPC.
The RTL could resolve available WinAPI routines in run-time (rather than load-time) and make a program all windows versions compatible :)
The compiler still generates binaries that are valid for any windows family OS, so the only compatibility issue is with RTL.
Not a bad idea but wouldn't it decrease runtime performance? Native FPC programs - that use only the RTL and no external libs - are really fast, even on old computers. I'm just curious.
I guess it may add some milliseconds to startup of program but it would be same afterwards. But it is huge work to write such a unit. Not sure if it worthsIt did worth back in 2007... or even 2005. I worked on such "rtl" for a closed-source project based on Delphi 7.
Sad to hear that. Aren't there workarounds for the latest compiler?Well, there's no maintainer for it. If someone steps in, it will be supported again. Simple as that.
I don't really understand why a compiler can't support Windows 95 while supporting OS/2 and DOS.
Well, there's no maintainer for it. If someone steps in, it will be supported again. Simple as that.
Well, there's no maintainer for it.
I find it hard to believe that anyone is using Windows 9x anymore, for anything. What could the possible use case be?Pinball? Or Hover? ::)
I find it hard to believe that anyone is using Windows 9x anymore, for anything. What could the possible use case be?I run a golf society, and use a very old laptop with 512K RAM (which was donated) to calculate the scores 'onsite' at the end of competitions. I would love to install something like Puppy Linux on it, but the scoring software is windows-only/MS Access, so it runs Windows 95 s.l.o.w.l.y. but adequately.
I find it hard to believe that anyone is using Windows 9x anymore, for anything. What could the possible use case be?I run a golf society, and use a very old laptop with 512K RAM (which was donated) to calculate the scores 'onsite' at the end of competitions. I would love to install something like Puppy Linux on it, but the scoring software is windows-only/MS Access, so it runs Windows 95 s.l.o.w.l.y. but adequately.
It also runs a couple of apps I wrote in Laz to allocate prize money and calculate new EGA handicaps.
I think that is 512 MB instead of KB...
I highly doubt that there were laptops with KB memory sticks installed.
Is the software impossible to port/unavailable for higher Windows versions, then?No idea how i would put my isa card into a pcie slot let alone that the legacy hardware manufacturer (read: non existing anymore) has drivers for ... let's say windows 10.
Is the software impossible to port/unavailable for higher Windows versions, then?No idea how i would put my isa card into a pcie slot let alone that the legacy hardware manufacturer (read: non existing anymore) has drivers for ... let's say windows 10.
That's a fair point. I just didn't think that there was that much "mission critical" legacy software developed specifically for the (not very stable) vanilla Windows 9X series. Most of the custom stuff I dealt with back in the day was running on NT, and later on 2000/e.t.c...Well you have a fair point in that it shouldn't. But, i think you also know how things work in practice. Some things simply turn into dust until the day someone realizes it has actually become mission critical so that budgets can be found to do something about it.
Also, on a broader note: I wasn't suggesting minesadorada try to run a newer Windows version on that laptop itself... but if the software he's using could run on a higher Windows version, why not just have a raffle or fundraiser or something at the golf society to raise money for a new laptop?Yes sorry that is my bad. I actually wanted to respond on your initial statement: "I find it hard to believe that anyone is using Windows 9x anymore, for anything. What could the possible use case be?" but got mixed up with quoting.
unless there is some real stupid things going on inside the code.Loads of it. Even by WIN95 itself. It's called 16 bit thunking... :D That kind of code is often impossibly - financially prohibitively - hard to port by lack of a 16 bit sub-system.
Exactly ;Dunless there is some real stupid things going on inside the code.Loads of it. Even by WIN95 itself. It's called 16 bit thunking... :D
In the end it just wasn't worth it anymore and now we almost completely stripped all Win9x code (AnsiString API calls) from Lazarus and rely fully on WideString API.
This inevitably will fail in Win9x.
In the end it just wasn't worth it anymore and now we almost completely stripped all Win9x code (AnsiString API calls) from Lazarus and rely fully on WideString API.
This inevitably will fail in Win9x.
Some of that is mitigated by installing the Microsoft Layer for Unicode on Windows 95, 98, and Me (MSLU) library (https://blogs.msdn.microsoft.com/mirapark/2007/02/08/microsoft-layer-for-unicode-on-windows-95-98-and-me/).
Some of that is mitigated by installing the Microsoft Layer for Unicode on Windows 95, 98, and Me (MSLU) library (https://blogs.msdn.microsoft.com/mirapark/2007/02/08/microsoft-layer-for-unicode-on-windows-95-98-and-me/).
Note this managerial defect has been that way for the better part of 10-12 years, iow since Windows XP came out.
Enough is enough.
I had to re-read it to understand that Bart wasn't the managerial defect... :D
I had to re-read it to understand that Bart wasn't the managerial defect... :D
As far as I get it from the wiki page, it could even run on NT 3.51, which means it would be fine on Windows 95 as well.No. It's is not fine. Even 3.51 has a complete 32/64 bit kernel and sub systems. Win95 hasn't. It is based on win32s, which is a bold on to 3.11.
I find it hard to believe that anyone is using Windows 9x anymore, for anything. What could the possible use case be?Believe it or not, one of the major problems here is the success Microsoft had selling "embedded" versions of Windows, which can be found in equipment from cheap consumer items, up to million dollar plus medical scanners. These nearly all use ROM based operating systems, so upgrading the OS is all but impossible. Another big hand for the Redmond giant.
What about the NativeNT (http://wiki.lazarus.freepascal.org/Target_NativeNT) target via cross compilation?
As far as I get it from the wiki page, it could even run on NT 3.51, which means it would be fine on Windows 95 as well.
Anyone tried it?
And those that want a small Windows system: why not give ReactOS (https://reactos.org/) a try? Considering it's based on the Windows Server 2003 API it's still supported by FPC. :)
For those who might be thinking of using FPC 2.6.4 or 2.6.2 to target win95, please note that unlike what is suggested earlier in the comments in this thread, and to the best of my understanding, those versions do not work at all to target win95. At least the binaries found online. I wasted much time only to find this out later.
However, tracking the code for those versions myself about the error I got, which is about a missing "TryEnterCriticalSection" in "Kernel32.dll", I found that the code does contain the pertaining patches for win95, but it seems that the binaries found online were not compiled with those patches enabled, where Enabled manifests itself as the macro "SUPPORT_WIN95" defined. See
https://www.freepascal.org/rtl/win95-rtl-242-fix.html
https://www.freepascal.org/rtl/win95-rtl-244-fix.html
https://www.freepascal.org/rtl/win95-rtl-260-fix.html
And I stopped there. I did not try to compile FPC 2.6.4, nor 2.6.2, myself.
For those who might be thinking of using FPC 2.6.4 or 2.6.2 to target win95, please note that unlike what is suggested earlier in the comments in this thread, and to the best of my understanding, those versions do not work at all to target win95. At least the binaries found online. I wasted much time only to find this out later.
/However/, you might find additional problems relating, if my memory serves correctly, to kernel-level Unicode support. There was debate about it at the time on the mailing list IIRC, but it was at that point that the oldest members of the Windows family which had any pretence to 32-bit support (i.e. Windows '95 and Windows NT 3 & 4) were dropped as supported targets.
From my POV the dropping was unfortunate, and there are still a few people with "industrial computers" of various kinds stuck with NT. But at the same time, I'm not one of the people who gets the grief when things stop working.
And please don't /anybody/ suggest using ReactOS.
And please don't /anybody/ suggest using ReactOS.
I already did, so... too late? :P
You may also use the best Windows version that support Windows XP to 11, 32 and 64 bit.
It is Wine for Linux.
;)
You will get the config-form with all the choice from Windows 2.0 to Windows 10 32 bit.
You will get the config-form with all the choice from Windows 2.0 to Windows 10 32 bit.
That's useful, thanks for that. I've used WINE a bit over the last couple of years to run Windows-specific software to talk to various cheap bench equipment before writing my own interface software and found it pretty good.
The 32 vs 64-bit thing is of course quite interesting. One of the earliest host/guest setups on Linux was UML (User Mode Linux), where the host OS was patched with a bit of extra memory management stuff (now standard) and a specially-configured kernel could run as a guest. Unfortunately, when x86 focus moved to 64-bit, they didn't attempt to provide a way that a 32-bit guest kernel could run on a 64-bit host: if they had I think it would have given Docker etc. a run for its money.
MarkMLl
Sometimes, but it is very rare, I have to adjust the program and so use fpc.exe installed on the true Windows machine and recompile the source (but I really prefer not to do it on Windows, it can be faster to reboot to Linux, fix the thing, recompile with wine and reboot back to Windows).