Recent

Author Topic: Supporting Windows from 95 to 10  (Read 26089 times)

MarkMLl

  • Hero Member
  • *****
  • Posts: 6676
Re: Supporting Windows from 95 to 10
« Reply #45 on: October 28, 2022, 08:50:41 pm »
I think this https://lazarus.lazarus.freepascal.narkive.com/sqAKxj7d/fixes-0-9-30-on-windows-nt4-does-not-build (via Google) is relevant, since while it is largely about Lazarus rather than FPC it shows the overall tenor of the community.

It also implies that the breakpoint for NT 4 support- and I suggest this will also apply to '95- was at around 2.4.2.

I can certainly see the attraction of an archival copy of 2.6.4 that worked with '95 and NT 4 since it was the last stable release before the comparatively big jump to v3 (and it supports conveniences like a string selector for a case statement). However the /really/ significant version was 2.2.4, i.e. rather older than we're discussing, since it was at that point that the FPC_FULLVERSION predefined was added which allows the programmer to decide whether to force an error because the compiler is too old.

And please don't /anybody/ suggest using ReactOS.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11383
  • FPC developer.
Re: Supporting Windows from 95 to 10
« Reply #46 on: October 29, 2022, 01:51:52 am »
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.

What win9x did you specifically test? People saying win95 in this thread mean general win9x, and since Bart did most of the test in the 2.6.x era, that probably means Windows ME.

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 11383
  • FPC developer.
Re: Supporting Windows from 95 to 10
« Reply #47 on: October 29, 2022, 02:13:36 am »
/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.

As said in the thread, the objective was to decouple Windows XP+ and Windows 9x. Back then, the upcoming FPC 3.x Unicode support would increase the number of differences (very) significantly. It was assumed of course that Win9x would mutate slower and maybe not release every time or not directly in unicode, while the maintainers got to grips to MSLU or kernelex.

But the total end of Win9x support was not actually intended/expected. The call for new maintainers simply didn't yield anything (while at least some low pressure maintainers were expected). From what I respond Bart was pretty much alone, and he saw himself more as a tester/poweruser than as the primary developer of such port. For the rest there were only some "I have a win9x machine in the attic I might get it out when I'm retired" like messages, and that was it.

« Last Edit: October 29, 2022, 03:42:40 pm by marcov »

PascalDragon

  • Hero Member
  • *****
  • Posts: 5446
  • Compiler Developer
Re: Supporting Windows from 95 to 10
« Reply #48 on: October 29, 2022, 03:41:23 pm »
And please don't /anybody/ suggest using ReactOS.

I already did, so... too late? :P

Thaddy

  • Hero Member
  • *****
  • Posts: 14197
  • Probably until I exterminate Putin.
Re: Supporting Windows from 95 to 10
« Reply #49 on: October 29, 2022, 04:22:52 pm »
Best advice is usually:
When using a legacy OS find the legacy compiler(s) that support it.
Do not expect newer features to work.
In a professional environment make sure you back up the compiler - version -  used with the release you made.
Specialize a type, not a var.

MarkMLl

  • Hero Member
  • *****
  • Posts: 6676
Re: Supporting Windows from 95 to 10
« Reply #50 on: October 29, 2022, 07:47:12 pm »
And please don't /anybody/ suggest using ReactOS.

I already did, so... too late? :P

:-) FPC is probably OK, but Lazarus was so bad that I raised a bug report.

Basically, if installing onto btrfs (which I already had reason to be dubious about) the installer unpacked more in each chunk than the filesystem buffer could hold and failed as a result. I did manage to get it working by installing into FAT and mounting that into the overall tree... at which point Lazarus worked fine, but it was much more painful than was reasonable.

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Supporting Windows from 95 to 10
« Reply #51 on: October 29, 2022, 08:05:07 pm »
You may also use the best Windows version that support Windows XP to 11, 32 and 64 bit.

It is Wine for Linux.

 ;)
« Last Edit: October 29, 2022, 08:17:48 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Supporting Windows from 95 to 10
« Reply #52 on: October 29, 2022, 08:46:00 pm »
You may also use the best Windows version that support Windows XP to 11, 32 and 64 bit.

It is Wine for Linux.

 ;)

And if you want Windows 32 bit 2.0, 3.0, 3.1 95, 98 and friends.

By default, when you install Wine on a Linux 64 bit machine, the Windows versions emulated are ... 64 bit.

So, to set Wine for Windows 32 bit, just do (multiarch has to be enabled-installed before.)

- Rename your /home/you/.wine file into, for example, .wine64.

- Run on console:
Code: Bash  [Select][+][-]
  1. WINEARCH=win32 winecfg

It will recreate .wine configured for Windows 32 bit.
You will get then the wine-config-form with all the choice from Windows 2.0 to Windows 10 32 bit.

You may also choose the .wine config path, for example ( supposing you have a copy of the 32 bit .wine file renamed into .wine32 and the previous renamed .wine64 )

Windows 32 bit versions:
Code: Bash  [Select][+][-]
  1. WINEARCH=win32 WINEPREFIX=/my/patch/to/.wine32 winecfg"

Windows 64 bit versions:
Code: Bash  [Select][+][-]
  1. WINEARCH=win64 WINEPREFIX=/my/patch/to/.wine64 winecfg"
« Last Edit: October 29, 2022, 09:12:17 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

MarkMLl

  • Hero Member
  • *****
  • Posts: 6676
Re: Supporting Windows from 95 to 10
« Reply #53 on: October 29, 2022, 09:10:46 pm »
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
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Supporting Windows from 95 to 10
« Reply #54 on: October 29, 2022, 09:30:27 pm »
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

I have a dual boot PC with Windows 10 and Debian 11.
I mainly only use Debian and for the few Windows applications that I need I use Wine for Linux.
For example FPC, for the Windows test+release of my applications, I use fpc.exe via Wine.
When all is tested on Wine for Linux, I do a copy on usb, reboot to Windows and ... wait for the loooong boot, wait for the installing of the new updates, wait for initialization of Windows, switch off the virus scanners that dont like sometime fpc and test the binary from Wine on the real Windows machine.

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).
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

MarkMLl

  • Hero Member
  • *****
  • Posts: 6676
Re: Supporting Windows from 95 to 10
« Reply #55 on: October 29, 2022, 09:43:15 pm »
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).

I do on occasion find myself booting Windows XP to look at software which uses some custom USB protocol i.e. not looking like a serial port. If it's not a serial port, interface software normally gets put on the back burner.

Xref to https://forum.lazarus.freepascal.org/index.php/topic,61065.msg458401.html

MarkMLl
MT+86 & Turbo Pascal v1 on CCP/M-86, multitasking with LAN & graphics in 128Kb.
Pet hate: people who boast about the size and sophistication of their computer.
GitHub repositories: https://github.com/MarkMLl?tab=repositories

 

TinyPortal © 2005-2018