PitchHut
Log in / Sign up
CPMEMU_V5
6 views
Reviving history, one byte at a time with CP/M emulation.
Pitch

This project introduces a CP/M 2.2 emulator for Win32/64 and Linux, designed to bring back the vintage computing experience from over 30 years ago. Originally created for an IBM PC XT clone, this emulation enhances the performance of CP/M applications while staying true to its roots. Experience nostalgia and productivity with seamless legacy software support.

Description

David's CP/M 2.2 Emulator (CPMEMU) is a versatile emulator tailored for running CP/M 2.2 on both Windows and Linux platforms. This project, rooted in nostalgia, has evolved considerably since its inception, offering robust emulation experiences reminiscent of the early days of computing.

Key Features:

  • Multi-Platform Support: Seamlessly run CP/M programs on your modern Windows (32/64) or Linux (including WSL2) systems.
  • Performance Optimizations: With built-in options to disable debugging features, CPMEMU achieves remarkable performance, simulating a Z80 speed of over 4GHz—over 1000x faster than the original Z80.
  • Embedded Debugger and Disassembler: Features an embedded Z80 debugger (Z80DDT) to troubleshoot your applications, alongside a disassembler (Z80DSM) for analyzing and debugging .COM files.
  • Comprehensive Command Set: Supports internal commands for file manipulation (DIR, ERA, COPY, etc.), execution timing, and submission files, maintaining the feel of the original CP/M environment.
  • Key Translation: Maps common keyboard shortcuts to CP/M commands, preserving user familiarity.

Development History:

  1. Version 1 (1988-1989): Initial CP/M emulator tailored for IBM PC XT using a custom ISA card.
  2. Version 2 (2001): Adaptation for 386/486 architectures.
  3. Version 3 (2014): Introduction of CP/M emulation on Linux, leveraging standard C libraries.
  4. Version 4 (2023): Ported to Windows with updates like better CPU simulation and new features such as XSUB.
  5. Version 5 (2024): The latest update enhances features for both operating systems, including key command mapping and an embedded debugger.

Performance Metrics:

Performance is crucial for a successful emulator. Disabling the Z80DDT and Z80DEBUG features can lead to significant speed improvements. For example:

PC: Ryzen 5600 without -DZ80DDT: 8.2 secs
PC: Ryzen 5600 with -DZ80DDT: 14.4 secs

This demonstrates the efficiency of the emulator, allowing modern systems to perform tasks in a fraction of the time it took the original hardware.

Internal Commands:

A variety of internal commands facilitate ease of use, such as:

  • HELP: Displays help information.
  • DIR: Lists files in the current directory.
  • TYPE: Shows the content of a file.
  • TIME: Measures how long a specific command takes to execute.
  • DEBUG: Allows users to enable detailed logging for diagnosis.

Conclusion:

Whether you're reliving the golden age of computing or exploring retro software, CPMEMU provides an authentic and efficient way to experience CP/M 2.2. The combination of modern capabilities with nostalgic functionality makes it a valuable tool for enthusiasts and developers alike. Dive into the world of CP/M with CPMEMU and revive those classic applications on your current hardware!