Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 

ruthan

Why are Windows programs not still compatible with Win98? At first look simple question but..

Recommended Posts

ruthan    1

Hello,
i have at first look simple question but it could be complicated..

  I wonder why is not almost any new program not compatible with Windows 98, because majority of SW is still for Windows platform.. I know, that there new frameworks versions available only for new OSes, but that forces developers use them, are they really so huge benefits to abandon Windows 98 or its simple laziness care about such users?

  I dont have problems with few really HW hungry programs which needs 64bit OS, i dont care about games, which need newest GPU drivers, but normal apps, like browsers, monitoring utils graphics editors etc, here i dont see why this could still run on Windows 98..

Share this post


Link to post
Share on other sites
MrMateczko    20

Win98 uses outdated ANSI version of the WinAPI with ANSI only calls and functions. With Unicows and KernelEx you can only add so much of the modern Unicode calls that are used by NT based operating systems. NTKERN.VXD also only implemented so much at that time. (especially when talking about the cross-compatibility with 2000 WDM drivers) You can't remake a whole operating system's kernel and main system files, it's not Linux.

With thousands of new calls made for NT operating systems that can make software faster, easier to write, debug, test and distribute. Having 98SE in mind, would require probably a whole new executable of that program with functions purposely designed for 98SE (if we're not talking about using KernelEx). That costs time and money. What if a developer says a particular Unicode call is required for software to work, and it can't be faked/hooked with KernelEx? You'll be stuck like we all are right now.

With Win2000/XP being more and more outdates in terms of drivers/software support, having new 98SE software is virtually impossible, as Vista introduced another major changes to the API, kernel and framework.

So you either develop specifically for 98SE, or not at all. Here's a recent example:

https://www.libretro.com/index.php/retroarch-for-windows-98-seme2000-pre-release/

http://retroarch.com/index.php?page=platforms

https://buildbot.libretro.com/docs/compilation/windows98/

It's a completely separate package which requires a completely different compiler to be build. It's a lot of work for probably like only 1000+ max people that would care about new 98SE software. We people expect to have great success without much work. Maybe creating software 98SE would please such 1000 people, but would it be enough in the long run, if you have millions of people running the same software on modern OS's? Without a seperate team dedicated for only 98SE builds, you wouldn't have time to support, and bug fix both builds. As I've said, it takes time and money.

If I'm wrong at something (@rloew probably will correct me at something :) ) just let me know, but this is the image I have in my mind.

Share this post


Link to post
Share on other sites
rloew    90

Close enough.

KernelEx provides some User Mode support. My WDMEX provides some Kernel Mode support. But neither is complete.

One particular problem is that there are Functions that have been changed, not just added. Supporting New Software can break Older Software.
Some Programs that can work in either OS, run checks that may be triggered by the partial support, causing the Program to fail due to the lack of full support.
Another problem are changes to System Structures and Internal Names.

Share this post


Link to post
Share on other sites
MrMateczko    20

If the developers include such checks, they either do it without testing to skip some valuable time, or they have tried it in those old OS'es and decided to not support it.

And yes, things are indeed also changed, not added/removed. And maybe those changes make more trouble than trying to add new functions via KernelEx.

That are the problems with closed software.

Share this post


Link to post
Share on other sites
ruthan    1

Sorry this too much Windows oriented point of view, as i see it.

 Vanilla C, Java, Lua,Python, ASM etc, perl are in theory platform independent only you need keep no lower version of virtual machine / interpreter / libraries / units compatible with specific OS,
 
 This looks like that you are both using / speaking about some very specific Windows only APIs, to make Windows only coding easier, but very oriented to specific Windows version. 

  Older version Java or Python,perl are running on Windows, i just checked that even Java 1.6 is supported and im still time to time coding in some frameworks which still running on Java 1.6.. With C++ C# and Visual studio, Mono develop or Eclipse etc.. it should be same, you just new import on set of old / compatible libraries. For graphics, there would be some compatible QT,GTK GUI libraries, i dont know about SDL?

Even from OS independent lang you could make Windows specific apps and work with Windows specific things like registry, except you need too write very Windows specific think like Windows service or some explorer enhancer etc.


  Maybe im too old goat and can live without some modern function of modern IDEs., but im not fulltime developer i just time to time, write some code, in specific frameworks. I remember days of Dos coding, when i have to write everything from scratch - even video driver, mouse driver, fonts, alll data formats loaders.

  I know something about porting C++ originaly Windows XP+ project to Linux, MacOS or even mobile platforms (usually C++ wrappers), but i did multiplatform Windows specific app with Windows 98 support (too old), i coded Windows 9x specific thing in age of first Delphi or Borland C++ Builder 1.

Edited by ruthan

Share this post


Link to post
Share on other sites
jaclaz    927

If you prefer Windows program development it is like if you were to create anything in plastics, instead of making injection moulds from a block of steel to later create the final plastic object, you are given a kit of Lego and they create the plastic object by assembling the little bricks.

For the first chore you need to be a highly skilled professional and lots of time are needed, for the second even a kid can do it with a minimal knowledge of the Lego "rules".

Now the whole point of Lego is that the bricks are always interlockable and exchangeable and the "rules" never change, while of course very UNlike Lego :whistle: with Windows API/DLL's half of the bricks are undocumented :w00t: or mis-documented and slightly different in size :ph34r: at each year of release and you can never find two kits with the exact same bricks inside, and the "rules" are in a perennial state of flux.

jaclaz

 

Edited by jaclaz

Share this post


Link to post
Share on other sites
ruthan    1

I just wonder is there any way (from code perspective) how from Dos mode access to data in Windows registry tree? 

Share this post


Link to post
Share on other sites
jumper    55

Yes. Export branches or keys with REGEDIT.EXE, or just open the files and parse them according to the specs like REGEDIT and SCANREG.EXE do.

Share this post


Link to post
Share on other sites
ruthan    1
Quote

 

Sure.

Meet the General Paul Lee Registry Viewer (which is also an editor).

 

  Ok, but it is some Dos app, how to use it from code, just through some dos commands or there is some API?

Share this post


Link to post
Share on other sites
jaclaz    927
8 minutes ago, ruthan said:

  Ok, but it is some Dos app, how to use it from code, just through some dos commands or there is some API?

Well, the source code is provided, isn't that the "code" you were talking about?

Or are you now asking a different thing, a pre-compiled "pure DOS" command line registry editor? :dubbio:

What is the EXACT environment in which you wish to run that?

Or describe what EXACTLY you wish to do.

jaclaz

Share this post


Link to post
Share on other sites
ruthan    1

Well if is not API or Library, but just source i would take too much time to study.. Is not code as code.
 
 Some C/C++/C# (if it can run in DOS, i guest i cant) Library for DOS registry work would be best, commandline utility is worse, but still better than nothing and if Library would have good quality, could be even better choice. I just need to get some values and set some value, there is not nothing easier in theory.

Edited by ruthan

Share this post


Link to post
Share on other sites
jaclaz    927

You can use *any* hex editor, then.

AFAIK the whole concept of "API" or "library" is post-DOS.

There is a good (read only) library, called libregf, and of course you can "port to dos" hivex

http://libguestfs.org/hivex.3.html

There is the MS offline registry library, but AFAIK it is WINNT only, if you can use that from DOS, good for you:

https://msdn.microsoft.com/en-us/library/ee210757(v=vs.85).aspx

Again, if you actually DETAIL EXACTLY what you wish to achieve there may be other ways, command line usage of REGEDIT is perfectly possible for some scopes, as an example.

jaclaz

Share this post


Link to post
Share on other sites
ruthan    1
Quote

Again, if you actually DETAIL EXACTLY what you wish to achieve there may be other ways, command line usage of REGEDIT is perfectly possible for some scopes, as an example.

  I just need to get value of registry keys, set values and create new keys from code by simplest possible way.

  Its longshot, but you never know, exist something like DOS / Windows library for  DOS/Windows GUI development? Something what make abstract GUI layer would paint at least similar picture depends on detected OS? There such libraries for Win / Linux but for DOS.. Im trying to not have 2 different braches of code, only because i would like to run 1 app no DOS and Windows. 

   Or its Windows 9x in windows MS DOS good enough and best way is just write DOS application and run in Windows in DOS mode? I just need some basic gui - to paint some topmenu, bars, few buttons, performance doesnt matters, if it would text style graphics like Turbo Vision im still ok with that.

  I wrote something for Dos lasttime when i was 14 years old and its allmost 20 years.

Edited by ruthan

Share this post


Link to post
Share on other sites
jaclaz    927

I really cannot understand what you actually *want*, really.

If you are running a 9x/Me (or DOS) the easiest is to use REGEDIT on command line.

Quote

Using REGEDIT in DOS 
The utility we're going to use is REGEDIT.EXE-the same REGEDIT that we use 
in Windows also runs as a DOS program.

https://web.archive.org/web/20100529085012/http://articles.techrepublic.com.com/5100-10878_11-1032874.html

If you are running NT derived OS, you can use the MS offline library (and optionally the existing tools making use of it). 

Maybe you want a (of course free, and open source, working on DOS, Windows 9x/me and NT/2K/XP and later) clone of Ghregedit?

https://support.symantec.com/en_US/article.HOWTO10410.html

There are none that I know of.

jaclaz

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×