https://github.com/hellebenjamin/bemu80
Z80 emulator written in C
https://github.com/hellebenjamin/bemu80
emulator z80 z80-emulator
Last synced: 4 months ago
JSON representation
Z80 emulator written in C
- Host: GitHub
- URL: https://github.com/hellebenjamin/bemu80
- Owner: HelleBenjamin
- License: gpl-2.0
- Created: 2025-11-09T21:54:50.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-02-25T19:16:50.000Z (4 months ago)
- Last Synced: 2026-02-25T21:53:23.153Z (4 months ago)
- Topics: emulator, z80, z80-emulator
- Language: C
- Homepage:
- Size: 225 KB
- Stars: 4
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
BEMU80
======
Bemu80 is a Z80 emulator written in C for POSIX-compliant systems. It's currently mostly functional,
but expect to find bugs and missing features. If you find any bugs, please report them.
There are currently two branches: main and development. The main branch is stable and the development branch is unstable(and possibly buggy). You should use the main branch unless you're a developer and want to test new features.
See https://github.com/HelleBenjamin/bemu80-basic to get modified BASIC 4.7 for the emulator.
This repository contains the source code of modified BASIC 4.7 for the Bemu80 emulator. See `basic/README` for more information.
Building
========
Building Bemu80 is very simple.
What you need:
- a compiler, such as gcc
- make
- POSIX-compliant OS, like linux, macos and freebsd
- basic coding knowledge
Build instructions:
1. Configure build flags in the makefile.
You can comment some configurations out if you don't want them.
For example, if you don't want to build debug version, comment out the `CFLAGS := -O0 -g -Wall -fsanitize=address -lpthread` line and uncomment the `CFLAGS := -O2 -Wall -lpthread` line.
2. Run `make`. This will build the emulator. Use `sudo make install` to install it to your /usr/local/bin directory.
3. Run binary programs with the `bemu80` command.
Options
=======
The binary program to be executed is specified as the first argument.
Example: `bemu80 test.bin -ins` not `bemu80 -ins test.bin`.
The emulator accepts the following arguments:
- `-ins`: Print CPU state after each instruction. Useful for debugging.
- `-mem`: Do a memory dump after loading the program.
- `-pc`: Set the initial program counter.
- `-org`: Set the address where the program is loaded.
Contributing
============
If you want to contribute to Bemu80, you can fork the repository and submit a pull request. Any feedback is welcome.
Backstory
=========
Bemu80 is my 4th and final attempt at writing a Z80 emulator.
So that's why the versioning starts at v0.4.0 and not v0.1.0.
License
=======
Bemu80 is released under the GPL v2 license.