Page 1 of 1

EXE Support (Experimental)

Posted: Wed Apr 07, 2021 9:42 pm
by enusbaum
Hey Everyone!

Currently we're working on adding support within MBBSEmu to run 16-bit & 32-bit DOS MZ EXE Files :geek:

This is mostly required in order to support the offline utilities used by some Major BBS & Worldgroup Modules to perform actions during cleanup, startup, shutdown, etc.

You can experiment with this new feature by using the following command:

Code: Select all

MBBSEmu -exe <file.exe>
We're including simple test EXE and their source code in the solution (link) with hopes to expand this library as more support is added.

From a technical standpoint, we've co-opted the LocalConsoleSession Session Host within MBBSEmu to serve as our input/output interface for the EXE files. The benefit here being in the future if we wanted to have stdin and stdout go through the Telnet session, that would also be an option as well!

If you're interested in debugging and playing around with EXE support locally, you can download Borland Turbo C++ 3 (DOS) or Borland Turbo C++ 4.5 to compile the following program:

Code: Select all

#include <stdio.h>
#include <conio.h>

int main()
{
    char name[20];
    
    clrscr();
    printf("Enter your name: ");
    fgets(name, 20, stdin);
    printf("Hello, %s", name);
    getch();

    return 0;
}
Once you're in there and you start finding we're missing additional Interrupts, feel free to submit a PR! :D