A Z80/CP/M emulator for Android phones and tablets, built on the RomWBW HBIOS platform.
- Full Z80 emulation with accurate instruction timing
- RomWBW HBIOS compatibility for authentic CP/M experience
- VT100/ANSI terminal with escape sequence support (runs Zork, WordStar, etc.)
- Multiple disk support - up to 4 disk units with hd1k format (8MB slices)
- Download disk images from RomWBW project - no bundled copyrighted content
- Hardware keyboard support - Bluetooth and USB keyboards
- Control strip - Ctrl, Esc, Tab, Copy, Paste buttons for touch input
- Help system - Built-in documentation downloaded from GitHub
- R8/W8 file transfer - Transfer files between Android and CP/M
- First launch automatically downloads a default boot disk
- Open Settings (gear icon) to configure disks and options
- Download additional disk images from the disk catalog
- Press Play to start the emulator
- At boot menu, press
0to boot from disk
h- Helpl- List ROM applicationsd- List disk devices0-9- Boot from device number
- Ctrl - Toggle control key mode (next key becomes control character)
- Esc - Send escape character
- Tab - Send tab character
- Copy - Copy screen to clipboard
- Paste - Paste clipboard as keyboard input
Transfer files between Android and CP/M using the R8/W8 utilities:
- Imports folder:
Android/data/com.awohl.cpmdroid/files/Imports/ - Exports folder:
Android/data/com.awohl.cpmdroid/files/Exports/
To import a file to CP/M:
- Copy file to Imports folder using a file manager
- In CP/M, run:
R8 FILENAME.EXT
To export a file from CP/M:
- In CP/M, run:
W8 FILENAME.EXT - File appears in Exports folder
Disk images are downloaded from the official RomWBW project:
| Disk | Description | License |
|---|---|---|
| CP/M 2.2 | Classic Digital Research OS | Free (Lineo) |
| ZSDOS | Enhanced CP/M with timestamps | Free |
| NZCOM | ZCPR3 command processor | Free |
| CP/M 3 (Plus) | Banked memory support | Free |
| ZPM3 | Z-System CP/M 3 | Free |
| WordStar 4 | Word processor | Abandonware |
Downloaded images are stored in app-specific storage and work offline.
+-------------------------------------+
| Android UI (Kotlin) |
+-------------------------------------+
| EmulatorEngine (JNI) |
+-------------------------------------+
| HBIOSEmulator (C++) |
| +-----------+-----------------+ |
| | qkz80 | HBIOSDispatch | |
| | (Z80 CPU) | (HBIOS calls) | |
| +-----------+-----------------+ |
+-------------------------------------+
This project uses code from sibling directories:
../cpmemu/src/- qkz80 Z80 CPU emulator../romwbw_emu/src/- HBIOS dispatch, memory banking
The terminal supports ANSI/VT100 escape sequences:
- Cursor positioning (
ESC[row;colH) - Screen/line clearing (
ESC[2J,ESC[K) - Text colors (CGA 16-color palette)
- Cursor movement (
ESC[A/B/C/D)
Uses RomWBW hd1k format:
- 8MB per slice
- Up to 8 slices per disk (64MB total)
- 1024 directory entries per slice
- Compatible with all RomWBW disk images
- Android Studio Hedgehog (2023.1) or later
- Android SDK 24+ (Android 7.0)
- Android NDK 27+
- Clone sibling projects (cpmemu, romwbw_emu)
- Open project in Android Studio
- Sync Gradle
- Build and run
- 80un - Unpacker for CP/M compression and archive formats (LBR, ARC, squeeze, crunch, CrLZH)
- cpmemu - CP/M 2.2 emulator with Z80/8080 CPU emulation and BDOS/BIOS translation to Unix filesystem
- ioscpm - Z80/CP/M emulator for iOS and macOS with RomWBW HBIOS compatibility
- learn-ada-z80 - Ada programming examples for the uada80 compiler targeting Z80/CP/M
- mbasic - Modern MBASIC 5.21 Interpreter & Compilers
- mbasic2025 - MBASIC 5.21 source code reconstruction - byte-for-byte match with original binary
- mbasicc - C++ implementation of MBASIC 5.21
- mbasicc_web - WebAssembly MBASIC 5.21
- mpm2 - MP/M II multi-user CP/M emulator with SSH terminal access and SFTP file transfer
- romwbw_emu - Hardware-level Z80 emulator for RomWBW with 512KB ROM + 512KB RAM banking and HBIOS support
- scelbal - SCELBAL BASIC interpreter - 8008 to 8080 translation
- uada80 - Ada compiler targeting Z80 processor and CP/M 2.2 operating system
- uc80 - ANSI C compiler targeting Z80 processor and CP/M 2.2 operating system
- ucow - Unix/Linux Cowgol to Z80 compiler
- um80_and_friends - Microsoft MACRO-80 compatible toolchain for Linux: assembler, linker, librarian, disassembler
- upeepz80 - Universal peephole optimizer for Z80 compilers
- uplm80 - PL/M-80 compiler targeting Intel 8080 and Zilog Z80 assembly language
- z80cpmw - Z80 CP/M emulator for Windows (RomWBW)
- RomWBW - The original RomWBW project by Wayne Warthen