PitchHut
Log in / Sign up
cpmulator
7 views
Revive retro software with a Golang CP/M emulator for nostalgic computing.
Pitch

Experience the charm of vintage computing with this Golang CP/M emulator, designed for running classic software like Zork and Turbo Pascal. Initially aimed at recreating a text-based adventure for my child, it has evolved to support a wealth of beloved CP/M applications. Dive into nostalgia, explore vintage adventures, and relive the early days of programming.

Description

cpmulator is a robust CP/M emulator crafted in Go. Its primary aim is to execute CP/M binaries seamlessly, providing an integrated Console Command Processor (CCP) for user interaction. Originally developed to run the intriguing text-based adventure game, Lighthouse of Doom, this emulator has now evolved to support a multitude of classic CP/M applications, cementing its functionality and versatility.

Key Features:

  • Extensive Compatibility: The emulator successfully runs a variety of well-known CP/M programs, including:

    • The Aztec C-Compiler
    • Borland's Turbo Pascal
    • Iconic Infocom Games such as:
      • Zork 1, 2, & 3
      • Planetfall
    • BBC and Microsoft BASIC
    • Wordstar
  • Integrated Console Command Processor (CCP): This emulator features an intuitive CCP that allows users to navigate and execute commands efficiently, enhancing the overall user experience.

  • Real-Time Interaction: Users can interact with the emulator through familiar commands like DIR, TYPE, and others to manage files seamlessly across simulated drives.

Improved Functionality:

This project, although reaching a point deemed "complete," is open to enhancements and additional testing. Users are encouraged to contribute by opening issues for non-functional programs, ensuring continuous improvement.

Note on Limitations:

The current iteration does not support disk operations. While file read/write functionalities operate smoothly, any operations referring to disk tracks or sectors will result in an "unimplemented syscall" error. Users should adjust their expectations accordingly.

Additional Resources:

For users looking for vintage software to utilize with the emulator, a companion repository is available, providing a variety of CP/M software for seamless integration.

Getting Started:

Launching cpmulator will direct users into the default CCP command line, from which they can utilize a wealth of commands to navigate through simulated drives and execute legacy binaries effectively:

Example Usage:

$ cpmulator -cd /path/to/binaries -directories
$ B:  
$ MBASIC  # To run Microsoft BASIC
$ G:  
$ ZORK1   # To play Zork1
$ P:  
$ TURBO   # To run Turbo Pascal

Portability:

While the emulator is optimized for Linux and MacOS platforms, please note that due to its architecture, it may not perform effectively on Windows systems without modifications.

Conclusion:

cpmulator not only bridges the gap between classic computing and modern technology, but it also revives nostalgia for the CP/M era, granting users access to a range of historic software applications. Join the community, explore the past, and enjoy the experience of executing CP/M applications on modern systems.