Slashdot Mirror


Porting DOS Applications to Unix?

jgbustos asks: "I'm the manager of a small software development company. For the last five years we've been managing a communications network consisting of several thousand PC terminals which connects to an NT server over the phone lines. The terminals run a console application on a light DOS. Everything is fine so far. So what's the problem, then? We have a hard time finding parts to maintain the network. Our client says that he's willing to invest in hardware upgrades, but we should move to a Windows-like environment, however he doesn't want to pay for more than 4000 Windows licenses. What's the best alternative for porting our app to Linux/? Please bear in mind that the terminals are small PC's having 16MB RAM, less than 2GB HD, less than i586 CPU, and a 33k modem. Thanks in advance"

5 of 61 comments (clear)

  1. too many open ends by ka9dgx · · Score: 4, Insightful
    #1. Where is the hardware that's falling apart? If it's a server... use GHOST and copy the image of the system to a new, better, faster machine, and be done with it.

    #2. What's the DOS app, do you have source? What does the DOS app do?

    #3. Why not just roll out replacement terminals as needed, instead of en-mass? You could probably use FreeDOS instead of MS-DOS, and set up a new machine ($200 walmart variety) to do exactly what you need.

  2. Re:Parts? by JAZ · · Score: 4, Insightful

    maybe it will be easier to start over from scratch

    as we're fond of saying on my on my architecture team when folks try to fix application problems with more hardware... "$$$ will buy a lot of developement."

    I guess in this case, "4000 windows licenses would buy a lot of nice OSS code." =]

    --


    "Karma can only be portioned out by the cosmos." -- Homer Simpson
  3. So you're solving a hardware problem... by dpilot · · Score: 3, Insightful

    with either new hardware + new Windows software or just new Linux software on the old hardware.

    If that's the choice, go with Windows + new hardware, and warn the client that the bill will rise as you finish the migration. The Linux option has been painted into a no-win situation because software-only can't solve a hardware problem. This is reminiscent of the old OS/2 days, when it was roundly criticized for not running well in 4MB, and then they'd go off and buy 16MB to run Windows.

    If you're serious about offering choices, prototype a Linux solution on one machine, so you can show the UI. A Windows prototype shouldn't be necessary, since everyone assumes it can be done. (I won't justify that assumption, but it's common.) Then put together a bill for both options with the full migration.

    Then let the customer decide, and pay.

    --
    The living have better things to do than to continue hating the dead.
  4. Re:Ok by walt-sjc · · Score: 3, Insightful

    Short answer: No.

    Longer answer:

    In DOS, you have full access to the hardware. This means that you read and write registers and I/O ports directly. Many DOS apps wrote directly to video memory for example. Most programmers did this for performance reasons, AND that it was easier.

    For example: Let's say you had a form onscreen to fill out. What you did was use a ASCII screen designer tool that allowed you to play with all the attributes, and dump the contents of that to a file. This file could be included with your app (in a header file) or loaded from disk at runtime. Of course there were many other ways of doing this.

    Since this guy uses a modem, he probably purchased one of the communication libraries that had x/y/zmodem, etc. and handled all the ideosyncracies of the 8250/16550 comm chips.

    You also had to play lots of tricks if you wanted to access memory above 640K - you needed to run something like a DOS extender (PharLap comes to mind.)

    So, no. It's not just a recompile. It's a port.

  5. Telnet? by skinfitz · · Score: 3, Insightful

    The terminals run a console application on a light DOS. Everything is fine so far.

    A "console application" connecting to a server via DOS? I bet his "console application" is a telnet client!