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.
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.