EXE Support (Experimental)

Want to get started working on the MBBSEmu Source Code? Have questions about how MBBSEmu works? The friendly MBBSEmu Developer Community is here to help you with any topics related to the Development of MBBSEmu and working with the Source Code!
Post Reply
User avatar
enusbaum
Site Admin
Posts: 19
Joined: Wed Apr 07, 2021 2:23 pm
Location: Charlotte, NC
Contact:

EXE Support (Experimental)

Post 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
Developer, Reverse Engineer, MBBS/WG Enthusiast
Maintainer of The MajorBBS Emulation Project :geek:
[[ Homepage | Discord | GitHub | Wiki ]]
Post Reply