1

I have two PCs. PC (let’s say PCA) and PC (let’s say PCB):

  • PCA – Only one OS installed -> win10
  • PCB – Two OS’s installed -> win10 and Free DOS. During the PC boot the OS selection menu appear. The main board of that PC support the Intel AMT technology.

Both PC’s are connected between by:

  • Ethernet interface -> interface used for power management. I’m using the AMT to power up/power down the PCB main board by PCA
  • Hardware RS232 interface -> interface used for communication between Application on PCA and application on PCB under the DOS OS

What I need to do? Below steps I need to follow in that specific order:

  • Power up PCA manually by operator and run test application,
  • Power up PCB (controlled by PCA),
  • Select the PCB OS from OS selection menu (multi boot) -> FreeDOS,
  • perform some communication between PCA and PCB by RS232,
  • Power down PCB (controlled by PCA),
  • Power up PCB (controlled by PCA),
  • Select the PCB OS from OS selection menu (multi boot) -> Win10,

Solution I was thinking about:

Add next connection between PCA and PCB by USB. In this case PCA should emulate USB Keyboard as HID for PCB and I would like to send specific keystroke (1 or 2) to PCB to choose specific OS from boot OS selection menu. I can’t find solution/examples how to implement the HID keyboard emulation on PCA.

I have found some old tips described in here with WIN32 USB API https://social.msdn.microsoft.com/Forums/en-US/1b301a05-321b-4991-a73e-ee8be04b7249/c-with-usb?forum=netfxnetcom

but the details are not available anymore - it was deleted from server.

Other tips I have found are rather related to solution with Raspberry PI as keyboard emulation, or keyboard emulation but for the same PC locally.

Maybe other idea to solve that issue? Control the OS selection menu by Ethernet?

If you can share any examples, tips how to implement I will be very grateful.

HINT: for some reason there is not possible to use additional hardware parts like Arduino or Raspberry PI e.g. as the keyboard emulation. In general I can’t add any hardware – only to add extra connection between PCA and PCB and software modyfication is possible.


Update

To give you the better picture. To PCB I insert the special PCI card and I need to write some specific data to card eeprom. The reason to use the freeDOS is that I have receive from my customer the exe working only under the real DOS OS -> I do not have the source codes for that application and there is not chance to get it.

I even do not know how exactly the exe work because the customer does not have any documentation. In this case I have developed the application under the DOS and my application call customer exe with specified arguments and communicate with second PC to return the results by the RS232. For sure the exec does not work correctly under the windows command line.

Now I got the request from customer that after eeprom writing I need to perform some test and I have receive second exe but under the windows -> again the same story that I do not have any source codes, documentation and so on, simply I just need to use that executable. This is the main reason that I need to switch between 2 OS in one cycle.

mkrieger1
  • 19,194
  • 5
  • 54
  • 65
darwoz
  • 11
  • 2
  • If appears that the only reason you need FreeDOS is to communicate via RS232. Why not just write a program in C# that communicates to that device, then there is no need to reboot at all? – Neil Jul 18 '21 at 12:56
  • Thak you for the feedback Neil. Just look on update of my question I have explained the reason of that architecture. – darwoz Jul 18 '21 at 13:31
  • I'd be tempted to tell the supplier to get out of the 90s and support a modern OS ! – Neil Jul 18 '21 at 13:37
  • Neil, unfortunately it does not working in that way. Sometimes it is business reason, sometimes it is technical reason and sometimes it is qualification reason. Usually our customers do not use old technology if it is not realy necessary. In this case it is qualification reason. – darwoz Jul 18 '21 at 15:49
  • Qualification as in, we've got our code certificated 30 years ago and we're too cheap to upgrade it? Who is the client, NASA? Sometimes you have to push back and say "we really can't support this ancient technology". The only reason they current have ANY options, is because some random guys off the internet are supporting MSDOS that was EOL in the mid 90s ! – Neil Jul 18 '21 at 18:33

0 Answers0