So you are a software developer?

by Codewiz51 July 08, 2009 22:01

Your company has just landed a job to update an embedded computer system:

  • The embedded computer is an old x86 architecture.
  • It's running FreeDOS and the existing software utilizes Phar Lap 386 DOS externder.  The original Phar Lap software is available from the customer on 3.25" floppies.
  • Application source code is available.  It's a mixture of assembler code and c. You'll need to find some older, abandoned compilers to recompile the source code.
  • Your system is essentially a 64Kb computer with a 5MB hard drive.
  • You can interface to the computer over RS-232.
  • Kermit is the only communications software available to transfer files.

You may be young enough to have never faced a DOS computer.  Much less a computer without a graphics card, keyboard and mouse.

  • You have never used anything but an IDE?  Well, forget that, graphics are not available.
  • Where do you download the compilers?
  • What editor do you use?
  • Can you develop and compile on a different computer and transfer the executables to the target computer?
  • The ancient documentation from the client keeps mentioning edit, compile, link and debug.  What does that mean?
  • What is int and iret, it appears throughout the source code?
  • The source code depends on ancient header files and libraries used in the original compiler which no longer exist in the free or abandoned versions.  (Most likely, a spunky volunteer cleaned up the run time includes.)
  • Can you buy a fully functioning "old" compiler with documentation?
  • You'll definitely need to buy a USB floppy device.

You're two days into a two week project and you are still mucking around trying to understand the source code?  Forget Intellisense™.  You're also likely discovering you don't know the C runtime as well as you thought.  How do you cross reference a bunch of assembler and c code so you can look stuff up?  What is the pc-lint utility?  The routine abbadabbado is in the header file gobbagobba.h in the Microsoft Visual C++ compiler distribution.  Where is it in the openwatcom distribution?

The moral of the story is, take some time to work with ancient tools.  Ancient computer systems are still around.  In fact, tens of thousands of odd-ball computer systems are still around.  One day, you may be called upon to help estimate a job to update software on a thousand ancient embedded computers.  Your knowledge may be the difference between submitting a winning quote or walking away empty handed.

P.S. While I was writing this entry, I was amazed at the amount of current work going on in the DOS communities.  FreeDOS, DR DOS, even MS-DOS.  The amount of work to provide working compilers and DOS-Extenders is truly fascinating.  The whole world seems to be focused on multicore behemoths with fantastic optimizing compilers that operate in incredibly complex GUI environments.  And all the while, a quiet, dedicated community is still churning out software to run in text mode on DOS.

Comments are closed

Powered by BlogEngine.NET 1.6.0.0
Theme by Mads Kristensen | Modified by Mooglegiant

Disclaimer

This blog represents my personal hobby, observations and views. It does not represent the views of my employer, clients, especially my wife, children, in-laws, clergy, the dog, the cats or my daughter's horse. In fact, I am not even sure it represents my views when I take the time to reread postings.

© Copyright 2008-2011