Well, I was not intending to reply about this "off-topic" I created here but considering some replies above I'd like to share more thoughts I have about.
1st:
Actually, I found a pretty bad move of Lazarus team removing old Win32 support (Win9x mostly). We know Microsoft is sucking a lot lately, I really hate Windows 8.x and 10. They ended Windows 7 support and now they dropped support for 32bit in Win10. But it's just my humble opinion about. I mean, the fact I think it was a bad move of Lazarus team.
Yeah... OS/2 is still used. It was released as eComStation by Serenity Systems for a while and now as ArcaOS. Nice OS, really 32 bits. Just lacks a 64bits version. I'm aware a lot of companies still use it and even Win3.x software in some parts. Mainly for old (and unportable) like old accounting and database programs without source where the old companies are already defunct and they are totally abandonware.
Even the guys that created ClassicShell (
http://www.classicshell.net), a nice Delphi app, stopped developing it, released the source of its latest version again (they had stopped releasing the sources of newer version since then) and complained once in their site saying Microsoft was moving away of classic Win32 compilation and it was becoming hard to follow. They removed this text, but I understood them.
By the way, I always hated the new Start Menu that began with Windows XP, at least Windows XP still had the old one (Classic Menu), while Vista/7, 8.1 and 10 not.
Yeah... Microsoft is really sucking. A lot of old documents, like FAQs, Q&As, mainly KBs and even their old FTP archive are gone. They are forcing people to use only the latest versions of their products. Windows 10 SUCKS! Sorry!
2nd:
FreePascal team at least and it's what it seems think in more portability, more targets and as far I know they never dropped support for older operating systems.
It's great as I have developed some DOS FreePascal programs using FreePascal's TStringList object, it's like the Delphi one, great for parsing and processing texts as using old Turpo Pascal 7.0 for texts pretty sucks.
And I like to use Free Vision (their Turbo Vision implementation), it's like developing a Delphi application but in DOS.
By the way, there is a nice wrapper for Delphi called DWPL (
http://dwpl.sourceforge.net/), you develop a Delphi Win32 App, add their units to project, changes some functions if needed and guess what? Compile it and you wikl have a certain Dos 32 bits Application using WDOX extender and a modified version of TurboVision working like a Delphi one. It's so adorable...
And just saying this: FreePascal, you guys are AMAZING!!! Long life, FreePascal, Pascal forever!
3rd, last and my suggestion about:
As I can see Bart appeared. Hey guy! Nice to meet you!
Well, you could return with the old Win32 support for Win9x and after releasing it some time later, you could ask people (like recruiting) for Win16 support as I think it would be less painful to port old ANSI functions to their 16-bit counterparts.
It's not so hard to backport (downgrade) a Delphi 7.0 app to 1.0 Win16, You need to change the names of some units, like Windows to Winprocs and Wintypes, if you use text .DFM files (the forms files) you need to convert to old binary ones. Delphi has a converter for them, not only the IDE as they have a command-line one, "convert.exe". You need to make some changes in the .DPR removing "Application.Initialize;" too. This procedure doesn't exist in Delphi 1.0.
But before moving a Delphi 7.0 to Delphi 1.0, change only the .DFMs to binary and use Delphi 2.0. Some new properties/procedures and functions will be gone but as it's the first Win32 version it's very similar to Delphi 1.0.
After changing the codes, etc. If the original Delphi 7.0 program compile in Delphi 2.0 it will compile very well in Delphi 1.0, except some Win32 functions, you will have to use Win16 one and not using any of the Win32 VCL Components. That famous tab in the IDE.
And don't forget to change the .DPR's, .PAS's and .DFM's to 8.3 filenames and uppercase them. Don't use the trunked ones, like "A_UNIT~1.PAS"
Of course, a lot of functions of Win32 API don't exist in Win16 API, but some are very similar, the only real problems are the 16-bit limitations. An integer is really 16bit, if you need at least a 32bit integer, you need to change your variable to "longint". Strings are 256 bytes, a lot of other items are really limited to 64K (or 65536 bytes), mainly the TStrings/TStringList objects.
The Delphi 1.0 IDE is limited, you can't write a line of code with more than 256 characters. If declaring vars try trunking their names to fit the line like in functions or procedures. If declaring a long const string declare the const string in two or more parts if needed, like:
const1 = 'string very long...';
const2 = 'string very long...';
and concatenate them in code normally using the '+'.
Comments are annoying, only the old ones work {} the new ones //. If you comment a lot you will have to replace them.
Even the Unit can't have a large file size. I had two programs here where I had to create an extra unit and move some procedures/functions to it. Delphi 1.0 gives an error trying to compile the code. Not related with stack or memory as the Delphi program will run normally.
By the way, the Delphi 1.0 has some source code. Not all as the latest versions. Mainly the Client/Server 1.0. I think you can use them as base. A lot of Win16 API's are declared in them.
Well, I can help later providing tips for Win16 backporting, but only if someone really starts a "Lazarus for Win 3.x" here. Hardly, I know.
Just PM me and I'll be glad to give a real name, my location, a real e-mail and other contacts. I'm not American neither English is my native language but for a while I won't say my nationality publicly. Okay?
Okay... I'll stop with all this talking! Sorry for talking too much!
See ya!