Unpack and decompress archive and compression formats used on the CP/M operating system for Z80 computers.
Two implementations are provided:
| Version | Runs On | Use Case |
|---|---|---|
| 80un.com | CP/M 2.2+ | Extract archives on vintage hardware or emulators |
| 80un (Python) | Python 3.8+ | Extract archives on modern systems |
Both support the same formats and produce identical output.
pip install 80unRequires Python 3.8 or later. No external dependencies.
# Extract an LBR archive
80un archive.lbr
# Extract an ARC archive to a specific directory
80un archive.arc -o extracted/
# List contents of an archive without extracting
80un archive.lbr -l
# Decompress a crunched file
80un document.tzt- LBR (
.lbr,.lqr,.lzr): library archive, similar to tar. - ARC (
.arc,.ark): compressed archive with several compression methods. - Squeeze (
.?q?): Huffman coding with run-length encoding. - Crunch (
.?z?): LZW compression. - CrLZH (
.?y?): LZH compression (Lempel-Ziv + Huffman). - MBASIC tokenized files, through the companion program
80UNBAS.COM.
A native CP/M program written in PL/M-80 runs on real vintage hardware or emulators.
Download 80un.com from this repository, or build 80un.com with the uplm80 toolchain:
make # Build 80un.com
make test # Test with sample archivesA>80UN MYLIB.LBR
- Command line usage - options and examples for the Python
80uncommand. - Python API - extract, decompress, list and detect formats from Python.
- Supported formats - format tables, CP/M file naming, ARC methods, CP/M file handling, history.
- CP/M version -
80un.comusage, member names on CP/M, building, source files, memory,80UNBAS.COM. - Troubleshooting - common errors and odd file names.
- Testing - sample archives, test coverage, how the CP/M program is tested.
- CHANGELOG.md - release notes.
GPL v3 License
Bug reports and pull requests welcome at https://github.com/avwohl/80un
- cpmdroid - Z80/CP/M emulator for Android phones and tablets. It emulates the RomWBW HBIOS interface and a VT100 terminal.
- cpmemu - Z80/CP/M emulator for Linux and Windows, with Z80 and 8080 CPU cores. It translates the BDOS and BIOS calls of CP/M 2.2 programs to the host file system.
- ioscpm - Z80/CP/M emulator for iOS and macOS. It emulates the RomWBW HBIOS interface and runs CP/M 2.2 and CP/M 3.
- learn-ada-z80 - Collection of more than 90 Ada example programs for uada80, the Ada compiler for the Z80 processor and CP/M.
- mbasic - Python interpreter for MBASIC 5.21, the Microsoft BASIC-80 for CP/M. Two compiler backends compile the programs to CP/M .COM files or to JavaScript.
- mbasic2025 - Reconstruction of the lost source code of MBASIC 5.21, the Microsoft BASIC-80 for CP/M. The MACRO-80 source code assembles to a binary that matches mbasic.com byte for byte.
- mbasicc - C++17 interpreter for MBASIC 5.21, the Microsoft BASIC-80 for CP/M. It runs on Linux and macOS.
- mbasicc_web - Web browser interpreter for MBASIC 5.21, the Microsoft BASIC-80 for CP/M. Emscripten compiles the mbasicc interpreter to WebAssembly.
- mpm2 - Z80 emulator for MP/M II, the multi-user CP/M operating system. Users connect over SSH, and SFTP clients transfer files.
- romwbw_emu - Hardware-level Z80/CP/M emulator for Linux and macOS. It emulates the RomWBW HBIOS interface and switches banks in 512 KB of ROM and 512 KB of RAM.
- scelbal - Floating-point BASIC interpreter for the 8080 processor and CP/M. A translator converts the original 8008 source code to 8080 source code.
- uada80 - Ada compiler for the Z80 processor and CP/M 2.2. It compiles a subset of Ada 2012 to CP/M .COM files.
- uc80 - C compiler for the Z80 processor and CP/M. It optimizes for small code size.
- ucow - Cowgol compiler for the Z80 processor and CP/M. It runs on Linux in Python.
- um80_and_friends - Linux toolchain that is compatible with Microsoft MACRO-80. It has an assembler, a linker, a librarian, and a disassembler.
- upeepz80 - Peephole optimizer for Z80 compilers that write lowercase Z80 assembly language. It shortens jumps to jr, builds djnz loops, and removes dead stores.
- uplm80 - PL/M-80 compiler for the Z80 processor and CP/M. It writes Intel 8080 and Zilog Z80 assembly language.
- z80cpmw - Z80/CP/M emulator for Windows. It emulates the RomWBW HBIOS interface and boots CP/M from disk images.
- z80fpga - Z80 CPU in SystemVerilog for FPGAs, with RomWBW-compatible banked memory. It boots RomWBW and CP/M 2.2 on a Digilent Nexys A7.
- CP/M information archive - CP/M documentation
- Walnut Creek CP/M CD-ROM - Large CP/M software archive
- Fred Jan Kraan's PX-8 Archives - CP/M decompression utilities including CrLZH samples