back to article So what are you doing about your legacy MS 16-bit applications?

This is the last gasp migration for Microsoft ecosystem 16-bit applications. Windows Server 2008 x86 is the last Microsoft server operating system to support them. You can upgrade from Server 2003 to Server 2008 and buy yourself a few more years, but extended support for Server 2008 runs out in 2020. The migration won't be …

  1. Paul Crawford Silver badge

    If you are unlucky enough to have 16-bit + 32-bit + specific hardware/driver + IE dependency then I really do pity you :(

    However, if you have 16-bit DOS style stuff then you might also want to try dosemu for Linux. Beware it also has some oddities in terms of 32-bit versus 64-bit versions, but it might be an easier choice. Also if you depend on special hardware that assumes direct DOS-style access to special hardware (as we do) then this option might be away of avoiding having real DOS or Win95/98 machines any more since dosemu can be run with sudo (root) access and configured to permit specific hardware I/O in dosemu.conf

    If all else fails, then identify what is not going to work on 64-bit systems and keep that on a dedicated machine/VM and really go out of your way to protect it from the big bad world by putting it on a separate VLAN, etc, and firewalling it to the hilt. Even if it has to print to a network printer, try to block the printer connection as much as possible as they are often never patched and probably contain vulnerable web servers for configuring them, etc.

    1. MacroRodent

      DOSBox

      Another alternative is DOSBox (www.dosbox.com). Runs on Windows and Linux (and various other systems as well). This is a software-only emulator, but so is dosemu as well, if you run it on a 64-bit Linux system (the reason is the VM8086 feature that dosemu uses to run MS-DOS code at native speed on 32-bit Linux does not run in the 64-bit mode).

      DOSBox is a bit easier to get started with because it includes its own built-in MS-DOS clone (unfortunately it is a bit behind the times, for example it does not support the long file name extension).

      1. Paul Crawford Silver badge

        Re: DOSBox

        Yes, DOSbox is also worth a turn but we had hardware I/O demands so it had to be dosemu.

        dosemu also ships with a copy of freedos, though you can also use MS-DOS as well. You can configure the time keeping part to either follow the host time (so you get NTP accuracy, subject to the ~55ms tick of DOS time-keeping) or have it decoupled from the host which is handy for testing applications with other dates & times.

        I tried it beyond the 2038 point and on 64-bit it is fine. Puts off the date problems for long enough for most readers to be commentarding on St. Peter's book...

  2. Zippy's Sausage Factory

    I was going to say that Symantec don't sell Ghost any more. But apparently they do, and it even supports Mac and Linux now. I might have to give them some of my money - lack of Ghost was one of the reasons I've avoided Windows 8 so far.

    1. Anonymous Coward
      Anonymous Coward

      I wouldn't touch Symantec with a shitty stick.

    2. Justin Pasher

      Why mess with Ghost when CloneZilla does it for free (and with a Live CD/USB)?

  3. Anonymous Coward
    Anonymous Coward

    Start asking the developers pointed questions

    If you can find them after 20 years ......

    1. This post has been deleted by its author

      1. Anonymous Coward
        Anonymous Coward

        Re: Start asking the developers pointed questions

        Some of those applications may have been simply bought, and buying source code also - if available - could have been pretty expensive, especially if back then you were just a small company.... also, some code may have been written using tools already dead, or fading into oblivion... good luck with some applications written in dBase/Clipper/FoxPro/etc., Visual Basic and the like...

        Data and their rules need to be ported to a new platfrom, eventually - code may be not - it could be just beating a dead horse.

        1. MJI Silver badge

          Re: Start asking the developers pointed questions

          Clipper, used it a lot, still very usefull for some tasks, some utilities cross compiled into XBase++ (win32 console mode) but I did move to Visual Objects.

      2. the spectacularly refined chap

        Re: Start asking the developers pointed questions

        remember the value of hiring decent developers in the future - you know, the sort that leave technical documentation and source code behind, instead of only binaries which, "just work".

        That is more of a project management issue than a developmental one - what materials are supplied as a deliverable is outside the control of the typical developer. It is great simply demanding documentation and source but you need to take greater care specifying exactly what it is you want.

        Personally I would rather not have a copy of the source code in favour of a complete dump of the source code management system for the project, even if it's Visual Sourcesafe or something equally oddball. That (indirectly) gives you the source of course, but also a lot of good documentation either express or implied, i.e. it's easy to identify the revision that introduced a given section of code. Hopefully you have a descriptive log message saying why it was written. You almost certainly do know who introduced it and when. That's a great index into the developer's rough working notes if you are fortunate enough to have copies of those.

        In terms of documentation those working notes are valuable but you need things on top to pull everything together, ideally written in hindsight - thumbnail sketches written beforehand are of questionable usefulness.

        For an illustration of that consider the work I am doing right now: we are about 18 man months into a development project and supposedly around half way through - although personally I guess we've only written about a third of the code but are two thirds of the way through the overall effort. The fundamental modules all exist in some form - they are either complete or are at least fully explored and exist in some rough state. However they are linked together with rough and ready ad hoc "scaffolding" simply to show each module is working in context. I estimate it'll take me (personally) ten days to replace that with a properly engineered replacement that will form the new innermost core of the application.

        Now consider how that impacts on the documentation: put simply, any architectural overview already written will be completely invalidated once this next phase is complete. That kind of overview needs to be written once the code exists in tangible form. That brings me back to the first point, this is a project management rather than a development issue. Right at the end of the project, when the app is out of the door, time and resources need to be given over to creating that documentation. Put simply, many customers are not willing to pay for that even if it saves time and money in the long run.

        However, even if you do have all that documentation that is not to say it will be any use. The specific issue here is mixed 16 and 32-bit code. Win16/32 thunks are not elegant and I can't see many devs using them on a whim. The most frequent use case is probably (almost certainly) a 16-bit library in use by a 32-bit application. Probably a third party library - the developer doesn't have the source code, yet alone the customer.

        1. thames

          Re: Start asking the developers pointed questions

          @the spectacularly refined chap - Personally I would rather not have a copy of the source code in favour of a complete dump of the source code management system for the project, even if it's Visual Sourcesafe or something equally oddball.

          And now you have two software porting problems - The by then long forgotten Visual Sourcesafe so you can extract the source code, and then the application, if you ever manage to recover it. Personally, I think you would be better off with a tarball of the final version

          "Project" files from a by then ancient IDE are equally problematic. Text make files on the other hand can be deciphered, and if you're lucky even converted using a script.

          Oh, and any auto-generated code, GUI files, or XML magic mumbo-jumbo? Abandon all hope of doing anything useful with them.

          Sometimes the most useful information is screen-shots of the GUI (if it has one) and a description of what the thing is actually supposed to do.

      3. Anonymous Coward
        Anonymous Coward

        @1980s_coder - Re: Start asking the developers pointed questions

        Nobody could have seen that coming 20 years ago. Remember when Bill Gates himself was convinced that 640k of RAM would be more than enough ?

        1. Anonymous Coward
          Anonymous Coward

          Re: @1980s_coder - Start asking the developers pointed questions @AC

          > Remember when Bill Gates himself was convinced that 640k of RAM would be more than enough?

          Do you actually remember it? If you do, go fix the wikiquote page then.

          https://en.wikiquote.org/wiki/Bill_Gates#Misattributed

        2. Benno

          Re: @1980s_coder - Start asking the developers pointed questions

          Hmmm, I seem to recall that 20 years ago, I was working with 3rd generation 32-bit x86 CPU's, admittedly they had an FDIV bug, but you get that...

          As for other Architecture types, they'd been 32-bit for even longer (MIPS/Alpha/PPC/SPARC).

          You sir, have misquoted a misquote!

          :)

          1. Lennart Sorensen

            Re: @1980s_coder - Start asking the developers pointed questions

            Well actually the Alpha never did 32bit mode either, it was 64bit from the start, just like the Itanic that killed it (well that, along with totally incompetent management and infighting at Digital).

      4. launcap Silver badge
        FAIL

        Re: Start asking the developers pointed questions

        >>If you can find them after 20 years ......

        >...and remember the value of hiring decent developers in the future

        I had a fun one at my last place - old 386 boxes that had a hardware card in to control some early-90's era hardware. Put the cards in anything faster and they would lock up solid.

        At regular intervals I would warn my boss (COO of the company) that the stock of spares I had would only last so long and he needed to spend some cash to move away from the cards to something more modern..

        He didn't. And the 386 boxes have long since ceased to be available. I have no idea whether they can still use the machines involved!

      5. lcalcote

        Re: Start asking the developers pointed questions

        "Virtually all code will have to be ported to a new platform eventually. It makes sense to plan for that right from the beginning."

        Agreed.

  4. MJI Silver badge

    Stopping old software.

    I still use a few MSDOS tools, our own current stuff is WIN32. The escape route from them is dot net.

    If MS abandon WIN32, will other OS providers support them instead?

    I am fed up of OSes dropping support for software, Why do MS forget that small companies exist, that programmers die. Dead programmers code works as well as anyone elses.

    Oh and for MSDOS, thanks for the suggestion, I will try DOSEMU on my dual boot XP Mint PC

    1. Ken Hagan Gold badge

      Re: Stopping old software.

      I'd be amazed if dot-NET outlives Win32. All of Microsoft's most lucrative apps are Win32-based. .NET is already on the way out (with MS open-sourcing chunks).

      If MS abandon Win32, the evidence (of WINE's own compatiblilty list) is that WINE probably isn't up to it and that's the best alternative I'm aware of. On the other hand, VMs are your friend. Those old versions of Windows don't stop working just because MS pull the plug. You simply need to keep them away from the internet.

      Regarding the original article, if you are still dependent on pieces of Win16 code, 7+ years after MS gave notice that some future version of Windows wouldn't run it, you can't say you weren't warned. On the other hand, those apps can probably run on a client edition of Windows (where Win16 is still OK) rather than a server edition. (How the Linux-tards must chuckle at this random act of licensing.)

      1. Paul Crawford Silver badge

        Re: @Ken Hagan

        AFIK it has nothing to do with the license, but that MS never attempted to port the ntvdm to 64-bit.

        Most likely for the same reason that 64-bit dosemu is different to 32-bit and that is down to the 64-bit mode of the CPU not having the VM86 instruction to make life easier.

        However, as you say a VM will do for your remaining 32-bit Windows (provided you don't have hardware dependency).

        1. Ken Hagan Gold badge

          Re: @Ken Hagan

          @Paul: It's a licensing issue to the extent that MS still offer 32-bit editions of client Windows but not of server Windows.

          Apropos the wider point of the original article, unless you are running Microsoft's own applications (which may enforce gratuitous licence restrictions), what's the downside of running client editions of Windows for all your "server" tasks anyway?

      2. thames

        Re: Stopping old software.

        @Ken Hagan - I'd be amazed if dot-NET outlives Win32.

        I have to agree with that. Win32 applications will probably be running long after Dotnet is forgotten. The type of programs written which depend on Win32 are often the ones which tend to be self contained with fewer outside dependencies, and so make better cases for trundling on quietly in the background. Dotnet programs however are often hairballs of third party dependencies and so make better cases for rip-and-replace.

        @Ken Hagan - Regarding the original article, if you are still dependent on pieces of Win16 code, 7+ years after MS gave notice that some future version of Windows wouldn't run it, you can't say you weren't warned.

        The problem tends to be that a lot of these programs were written years ago to address specific small business needs and there isn't any viable alternative on the market. A lot of markets grow very, very, slowly, if at all. Most customers who need such a thing already have it, and the market for substitutes is too small to interest new developers. The original developer has been bought out by someone else who has either abandoned it, or is simply milking the limited revenue stream with no intention of putting any further investment into it.

        I've been through similar situations, and the idea that the vendor will always come through to support the customer is a myth. If they don't think it's the sort of market they want to continue to put their efforts into, then you're simply out of luck.

      3. MJI Silver badge

        Re: Stopping old software.

        Dot Net

        Open source though means it should have support elsewhere.

        But killing off WIN32, hmm a very dangerous idea, MS need to realise Windows is used because it runs all these things.

  5. Tannin

    "Let me be clear here: use Google. Don't use Bing. If you try to use Bing to solve patch issues for Windows Server using KB numbers you are going to go mad."

    Could you express that less ambiguously please? :)

  6. Bob Vistakin
    Facepalm

    Speaking of legacy micosoft crap

    After such a noteworthy start, did you know they only sold 100 XBox Ones in the whole of Japan last week?

  7. Filippo Silver badge

    Obviously, I'm going to keep running them on 486s running WinNT 3.1. What could possibly go wrong?

    1. This post has been deleted by its author

  8. Anonymous Coward
    Anonymous Coward

    Some application won't work because of 16 bit installers

    Some fully 32 bit applications were delivered using 16 bit installers - there are good chance the application itsef may work, but the installer won't. You may attempt to copy the application files manually (or extract them from the setup files), but you also may need to copy also, or recreate, all needed registry entries and configuration files. They may still want to write where they should not, or require writeable files in some shared folders - keep permission very tight to avoid issue to spread faster than you'd like (it happened in these days in Milano Tribunal - a ransomware encrypted data files in a shared folder used by a 1989 application still in use!)

    I'm not sure there are "a lot of" 32 bit applications calling 16 bit code - it required "thunking" and it required some non trivial work to be implemented correctly. But some surely exist.

  9. Anonymous Coward
    Anonymous Coward

    One thing that you hinted at, but did not come out and say is that the install, save, test, update, save test practice also works VERY WELL for current applications/OS updates as well.

    When I update one-off servers, I do the same thing.

    1) disable access

    2) shut down

    3) snapshot

    4) power on

    5) install/upgrade

    6) restart

    7) test

    8) enable access

    If it fails, I can revert to the snapshot and try again. If it doesn't work a 2nd time, I can clone the snapshot somewhere isolated before reverting and reenabling access. I now have a copy that I can work on or even allow the vendor into (but this requires a little more work) to resolve the issue.

    Normally I'd suggest that this is the wrong way to do it, but some service contracts are from 8am-8pm and maintenance windows are never before 10pm...

  10. Anonymous Coward
    Anonymous Coward

    Sure, it'll be safe

    But that procedure sounds like it'll take for-fucking-ever.

    1. Trixr

      Re: Sure, it'll be safe

      Not really. Install on vanilla 2008 x86. Test. If good, snapshot. Apply critical security fixes, non-IE. Test. If good, snapshot, try IE patches. If bad, roll back and test patches in blocks. If IE patches good, you're done. If not, roll back and try them in batches as well.

      If you're lucky, you'll be done in a morning. If you're not lucky, a couple of days (assuming you at least got the base install working).

  11. Anonymous Coward
    Anonymous Coward

    Trevor, have you considered technologies like Glassware from Sphere 3D? Per the company, it can run any app on any device, and ends end of life of legacy apps like XP.

    Problem solved.

  12. This post has been deleted by its author

  13. John Smith 19 Gold badge

    " test, document, image."

    I think I'm detecting a theme here.

    It all sounds like an awful lot of work for something most people will not even realize has happened.

    Except when you try to do this without following this process and something goes wrong.

    Then the work really begins.

    Anyone who's had to do an upgrade without complete documentation (and the documentation is never complete) on all the interactions knows the two most vital things to have are a)A know good baseline and b) The ability to roll back to that baseline.

    Trevor's description of this process may sound slow, but this way is a lot faster if anything does go wrong, and with enough unknowns the odds on bet is that something will go wrong.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like