I’ve been reading Programming Embedded Systems in C and C++, and I thought I’d capture my adventures of getting the Target188EB board from Arcom to work under Windows XP so that other good folks don’t have to go through the same hassle.

Here are the steps:


  1. Get the Barr book [2] from your favorite bookstore. Personally, I like Bookpool J
  2. Get Borland C++. I bought version 4.52 on eBay.
  3. Install BC++.

While I was not able to install it using the GUI installer under Windows 2000, it did work on Windows XP. If it does not work for you, try copying the files from the BC45 directory on the BC++ CD to your hard disk directly.

  1. Get the Arcom board. I bought it directly from Arcom over email : sales@arcomcontrols.com
  2. Install Arcom software. While not all of the installers for the individual diskettes that ship with the board worked, I was able to manually copy the files from the floppies.
  3. Hook up the hardware.
  4. Run ttest to make sure your debugger module is properly hooked up. Make sure to get this step to work.
  5. Now comes the important part.
  6. In order to get Turbo Debugger to work with the board, you need to run in as MS DOS program. Create a shortcut on your desktop to command.com.

Figure 1 Shortcut to command.com

  1. Set the compatibility mode of your shortcut to Windows 95 as shown below :


Figure 2 Compatibility Mode


  1. Set the “Idle Sensitivity” to High (otherwise your DOS box will consume 100% of CPU when Turbo Debugger is running) and check off the “Always suspend” checkbox  :


Figure 3 Background Operation and Sensitivity


  1. Compile the examples, run ttest to make sure your board is connected, and run tdr blink.exe. Turbo Debugger should  prompt you whether to load the program as in the figure below. Answer “yes”.


Figure 4 If you got this far, you're doing good


  1. The source code for the blink.c example should come up in the debugger. Enjoy!

Figure 5 Source Code in Debugger




  1. I still have not figured out why tload does not seem to start the executables on the board. For example running tload –g blink.exe does not seem to work, whereas loading it from the debugger works fine…
  2. The startup code that comes with Barr’s book does not quite work on my board. I can load the executable while in monitor, burn it to flash and jump to it – that works fine (as long as it does not relo the PCB – see below). What does not work is booting the board with J16 off – the startup code just hangs.
  3. The biggest problem so far is that relocating PCB on my board seems to lock it up as well. A lot of the examples from Barr’s use the i8018xEB C++ class which relies on a clever trick of relocating the PCB to RAM and mapping a struct pointer to it. As soon as I relo the PCB from my source code, the board locks up.



  1. CNET Article Setting the stage for legacy applications in Windows XP
  2. Programming Embedded Systems in C and C++  by Michael Barr