mbbsemu / MBBSEmu

The MajorBBS Emulation Project is an Open Source, Cross-Platform emulator for easily running The MajorBBS & Worldgroup Modules
https://www.mbbsemu.com
MIT License
128 stars 14 forks source link

[MBBSEmu] - MZ EXE Support #12

Closed enusbaum closed 3 years ago

enusbaum commented 3 years ago

Many MajorBBS & Worldgroup modules came packaged with utilities that are designed to be run offline through the main administration menus, or online during the nightly cleanup (defined in the MDF file for the given module).

Ideally, MBBSEmu would be expanded with a new command line option (-EXE) where users could specify the EXE file to be emulated and run. There are some technical differences to be considered:

  1. Majority of APIs within an MZ EXE file will require a more robust implementation of the INT 21h API set within the CpuCore.cs
  2. Because the target output is the console, depending on the INT 21h API, there might be some drawing shenanigans for cursor locations, etc.
  3. A lot of Console Applications use ANSI formatting for colors/etc. This might present issues on platforms that don't support the ANSI character set/encoding on the console

Technical Info: MZ EXE Format: https://www.fileformat.info/format/exe/corion-mz.htm

enusbaum commented 3 years ago

Closed with #315

While additional work needs to be done, initial MZ EXE support has been added.