Skip to content

jpursey/oz-3

Repository files navigation

OZ-3 Virtual CPU

The OZ-3 is an 16-bit virtual CPU made up just for fun. It's intended purpose is as a programmable execution engine within a game, that "feels" like a old school CPU, and where CPU architecture is actually part of the gameplay. More specifically, it is not a scripting language, or intended to be the execution engine for a scripting language (it almost certainly is way too limited).

What's here

This repository has everything to write, build, and run OZ-3 programs. The source folder is "oz3" and it contains the following:

  • core: This folder contains the core runtime library for the OZ-3. It contains the execution engine, memory, interrupts, and port interfaces for integrating the OZ-3 into another program.
  • tools: This folder contains general purpose tools and libraries for use with the OZ-3. Tools include an assembler and debugger library and tools. These are can be used independently or as libraries which can be integrated into another application or game.
  • devices: This folder contains independent virtual device libraries that can be attached to the OZ-3 via ports. In practice devices are very specific to application. These devices in particular are used by the Ozzy virtual computer.
  • ozzy: Ozzy is a virtual computer and "OS" built out of the OZ-3 core and provided devices. It also integrates the debugger, so it can be used to debug OZ-3 code.

Building OZ-3 code

The OZ-3 project is built using GameBits. At the moment, it only has been built for Windows, but in theory both GameBits and the OZ-3 are not written to be platform specific (I just have not made the effort to port it). In order to build any OZ-3 code, you must have GameBits downloaded, and the GB_DIR environment variable must be set to the root directory of GameBits.

Documentation

All documentation for the OZ-3 is located over in the OZ-3 Wiki.

About

OZ-3 virtual CPU

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published