A KC85 emulator written in Zig

Overview

A simple KC85/2, /3 and /4 emulator for Windows, macOS and Linux, written in Zig. Uses the sokol headers for platform abstraction.

Read more about the KC85 computer series here:

Some implementation notes.

Build

With Zig version 0.8.0, on Windows, macOS or Linux:

zig build

For the current Zig dev version, please switch to the zig-0.9.0 branch.

The default debug version will usually be fast enough, to build with optimizations use any of:

zig build -Drelease-safe=true
zig build -Drelease-fast=true
zig build -Drelease-small=true

(NOTE: on Linux you also need to install the ALSA, X11 and GL development packages)

Build and start into KC85/2, /3 and /4

zig build run-kc852
zig build run-kc853
zig build run-kc854

Run zig build --help to see the remaining build targets.

NOTE: when running any of the games, turn down your sound volume first. The raw square-wave sound can be a bit "aggressive". You have been warned ;)

Run Digger

zig build run-kc853 -- -slot8 m022 -file data/digger3.tap

Digger Screenshot

Press [Enter] to start a new game round, and [Esc] to continue after you died. Use the arrows keys to navigate.

Run Jungle

zig build run-kc853 -- -slot8 m022 -file data/jungle.kcc

Jungle Screenshot

Navigate with arrow keys, jump with [Space].

Run Pengo

zig build run-kc853 -- -file data/pengo.kcc

Pengo Screenshot

Navigate with the arrow keys, continue running against an ice block to push or destroy the block.

Run FORTH on the KC85/4

zig build run-kc854 -- -slot8 m026 data/forth.853

On the KC85/4's command line, first activate the module, and then start Forth:

switch 8 c1[Enter]
forth[Enter]

(the characters will appear uppercase, don't worry, that's normal)

FORTH Screenshot

Misc Stuff

For an instant nostalgia kick, start the KC85/4:

zig build run-kc854

...and then type this into the KC85/4 command line.

Make sure your audio volume isn't silent, but don't turn it up too much!

save f000 f800[Enter]

...type anything for the name, and hit Enter again :D

You might also like...
x86 emulator written in C++
x86 emulator written in C++

X86_EMULATOR_2 Build make Run ./x86 -i haribote.img Language and Library C++11, SDL2.0 How to use mouse on x86 emulator Grab mouse on x86 emulator cli

vrEmu6502 - 6502/65c02 emulator written in C

vrEmu6502 6502/65c02 emulator written in C Initially created for the HBC-56 Emulator Includes: Support for standard 6502, 65C02, WDC65C02 and R65C02.

BKM-15R emulator written in C for Linux terminal

BKM-15R emulator written in C for Linux terminal Crude implementation of the BKM-15R protocol as described

Tiny and portable Game Boy emulator written in C.

TinyGB TinyGB is a tiny and portable Game Boy emulator written entirely in C as a hobbyist one-man project. I only wrote this to deepen my understandi

x86 emulator on Raspberry Pi Pico
x86 emulator on Raspberry Pi Pico

picox86 x86 emulator on Raspberry Pi Pico https://user-images.githubusercontent.com/10139098/110543817-13299080-812b-11eb-9c88-674cdae919fc.mp4 PCB fr

I2C hardware test terminal/master mode emulator.
I2C hardware test terminal/master mode emulator.

I2C Master Mode Emulator The I2C master mode emulator allows communication with I2C devices by sending or receiving data to/from the I2C bus. To issue

a little hobby raspberry pi pico emulator

PICO-EMU a little raspberry pi pico emulator note: we use the provided bootrom from raspberry pi at the repo: https://github.com/raspberrypi/pico-boot

Emulator for EvE Online Crucible expansion

EVEmu - An EVE Online Emulator Introduction EVEmu is a work-in-progress server emulator for the space MMO EVE Online. This is an educational project.

a Blue Pill Neopixel Emulator

NeoPill a Blue Pill Neopixel Emulator, firmware for STM32F103C8T6. To build with STM32CubeMX (6.1.1), open bluepill_neoemu_clk.ioc, generate code in a

Owner
Andre Weissflog
Andre Weissflog
PAC-MAN emulator written in Zig

zig-pacman A PAC-MAN emulator written in Zig to showcase the zig80 library. Requires Zig, zigmod, and SDL2. Usage usage: pacman [-htda] [-c <ratio>] [

Matthew 3 Jan 24, 2022
Simple Pacman clone written in Zig.

pacman.zig Like https://github.com/floooh/pacman.c, but in Zig Zig bindings for the sokol headers are here: https://github.com/floooh/sokol-zig Build

Andre Weissflog 116 Sep 28, 2022
Zig bindings for the excellent CRoaring library

Zig-Roaring This library implements Zig bindings for the CRoaring library. Naming Any C function that begins with roaring_bitmap_ is a method of the B

Justin Whear 4 Feb 23, 2022
C, C++, D, Fortran, Rust and Zig for your z80

z80 Babel: C, C++, D, Fortran, Rust and Zig for your z80 This is a proof of concept for a multi-language pipeline for the Z80 CPU, and its correspondi

Manuel Martinez Torres 13 Jul 26, 2022
A Sol-inspired minimalist Lua binding for Zig.

zoltan A Sol-inspired minimalist Lua binding for Zig. Features Supports Zig 0.9.0 Lua tables table creation from Zig get/set/create methods possible k

null 76 Oct 5, 2022
OpenTibiaBR - Canary Project is a free and open-source MMORPG server emulator written in C++.

OpenTibiaBR - Canary Project is a free and open-source MMORPG server emulator written in C++. It is a fork of the OTServBR-Global project. To connect to the server and to take a stable experience, you can use our own client or tibia client and if you want to edit something, check our customized tools.

OpenTibiaBR 84 Oct 5, 2022
A simple processor emulator written in c++ that can parse and execute x32 code. x32 is binary code made by me for this processor.

A SIMPLE PROCESSOR EMULATOR AND CODE EXECUTOR The Repository This is a fairly new project and is still heavy in development. If you find and bugs feel

Luka Golob 4 Jan 20, 2022
GameBoy emulator with debugger written in C++ using Win32 and SDL2

脳(のう)腐(ふ) DMG-01 emulator written in modern C++ using Win32 API and SDL2. It is intended as a hobby project to sharpen my C++ skills. The emulator is

Jimmy Yang 21 Sep 21, 2022
Ben Eater's 8 bit breadboard computer emulator written in C.

Ben Eater's 8 bit computer emulator This is complete ben eater's 8 bit breadboard computer emulator written in C. Featerus Ncurses graphics Assembler

Kapil Pokhrel 6 Nov 7, 2021
A fully-featured, cross platform XO-CHIP/S-CHIP/CHIP-8 emulator written in C and SDL.

JAXE (Just Another XO-CHIP/CHIP-8 Emulator) Brix Space Invaders (In Debug Mode) Black Rainbow DVN8 Super Neat Boy Chicken Scratch CHIP-8 was a virtual

Kurtis Dinelle 21 Jul 25, 2022