c8c - The chip8 compiler, assembler, and virtual machine

  •        71

This will build the CHIP-8 virtual machine, binner, assembler, and compiler. The compiler will then build all the unit tests (tc8c) and example code pieces (examples). Hit the END key to exit.

http://glouw.com/2018/03/05/C8C.html
https://github.com/glouw/c8c

Tags
Implementation
License
Platform

   




Related Projects

Small Deterministic D Embedded Assembler Register Machine

  •    

SIDEARM is a minimal, virtual register machine that acts as an interpreter/shell for valid AVR assembly language execution in real-time by the virtual machine.

Cacaovm - Just-In-Time (JIT) Compiler

  •    Java

cacaovm is a Java Virtual Machine (JVM) which uses Just-In-Time (JIT) compilation to execute Java methods natively. cacaovm uses GNU Classpath or OpenJDK or phoneME as Java runtime library. The cacaovm project started as a research JVM to explore new implementation techniques. The first version for the Alpha was released in February 1997 as a binary.

IKVM.NET - Java for Mono and .NET Framework

  •    Java

IKVM.NET is an implementation of Java for Mono and the Microsoft .NET Framework. It has JVM implemented in .NET. A .NET implementation of Java class libraries. It is interoperable between Java and .NET.

Kaffe - Not Java

  •    Java

Kaffe is a clean room implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment.

Flasm - a Flash bytecode assembler

  •    C

Flasm is an assembler/disassembler for Flash actionscript bytecode. Using flasm, script authors may learn how actionscript compiler and Flash Player virtual machine work, and tweak the compiled bytecode in SWF files for performance.


GNU Classpath - Mother of most of the VM

  •    C

GNU Classpath provides core class libraries for use with virtual machines and compilers for the java programming language. GNU Classpath 1.0 will be fully compatible with the 1.1 and 1.2 API specifications, in addition to having significant compatibility with the 1.3, 1.4, 1.5 and 1.6 APIs.

Mako - A simple virtual game console

  •    Forth

Mako is a simple stack-based virtual game console, designed to be as simple as possible to implement. Maker is a compiler for a Forth-like language that targets the Mako VM. Mako has two stacks- a parameter stack and a return stack. Most MakoVM instructions manipulate the top elements of the parameter stack. Instructions are normally a single word (signed 32-bit integer), but some (like JUMP and CALL) are followed by a second word which provides an argument. The Mako memory layout is controlled by a number of memory-mapped registers starting in the lowest address- 0. In addition to the program counter and stack pointers, Mako has registers which control a pixel-scrollable 31x41 grid of 8x8 background tiles, a set of 256 variable-size sprites, a random number generator, optional character I/O facilities for debugging and an 8-bit audio output port. Some implementations additionally provide simple support for filesystem I/O.

Harmony - Open Source Java SE

  •    Java

Apache Harmony is a modular Java runtime with class libraries and associated tools. One of the goals of the Harmony project is to create a design modular enough so that parts of the VM can be implemented in different languages. This project started in 2005 and it is under active development.

gasm - An Experimental Wasm Virtual Machine for Gophers

  •    Go

A minimal implementation of v1 WASM spec compatible virtual machine purely written in go. The vm can be embedded in your go program without any dependency like cgo, and enables Gophers to write wasm host environments easily. The vm should be used only for providing sandbox environments embedded in your Go program since we have not implemented validation of wasm binary.

Libretto - Golang library to create Virtual Machines (VMs) on any cloud

  •    

Libretto is a Golang library to create Virtual Machines (VM) on any cloud and Virtual Machine hosting platforms such as AWS, Azure, OpenStack, vSphere, VMware Workstation/Fusion, Exoscale or VirtualBox. Different providers have different utilities and API interfaces to achieve that, but the abstractions of their interfaces are quite similar.

ChrysaLisp - Parallel OS, with GUI, Terminal, OO Assembler, Class libraries, C-Script compiler, Lisp interpreter and more

  •    C++

Assembler/C-Script/Lisp 64 bit OS. MIMD, multi CPU, multi threaded, multi core, multi user. Runs on OSX or Linux for x64, PI64 Linux for Aarch64. Will move to bare metal eventually but it's useful for now to run hosted while experimenting. When time allows I will be doing a VM boot image for UniKernel type appliances and a WebAssembly target to play around within the browser.

Mote VM

  •    Javascript

A simple compiler and virtual machine (VM) written in a cross-platform Javascript with multiple data types, full control structures and methods/properties.

open-vm-tools - Official repository of VMware open-vm-tools project

  •    C

open-vm-tools is a set of services and modules that enable several features in VMware products for better management of, and seamless user interactions with, guests. It includes kernel modules for enhancing the performance of virtual machines running Linux or other VMware supported Unix like guest operating systems.

vm - Package and Run Virtual Machines as Docker Containers

  •    Python

RancherVM allows you to create a special kind of containers called VM Containers. A VM container looks and feels like a regular container. It can be created from Dockerfile, distributed using DockerHub, managed using docker command line, and networked together using links and port bindings. Inside each VM container, however, is a virtual machine instance. You can package any QEMU/KVM image as RancherVM containers.RancherVM additionally comes with a management container that provides a web UI for managing virtual machines and accessing the VNC console.

Rubinius - Ruby Virutal Machine

  •    Ruby

Rubinius is an environment for the Ruby programming language providing performance, accessibility, and improved programmer productivity. Rubinius includes a bytecode virtual machine, Ruby syntax parser, bytecode compiler, generational garbage collector, just-in-time (JIT) native machine code compiler, and Ruby Core and Standard libraries.

rvmi - rVMI - A New Paradigm For Full System Analysis

  •    C

rVMI is a debugger on steroids. It leverages Virtual Machine Introspection (VMI) and memory forensics to provide full system analysis. This means that an analyst can inspect userspace processes, kernel drivers, and pre-boot environments in a single tool. It was specifically designed for interactive dynamic malware analysis. rVMI isolates itself from the malware by placing its interactive debugging environment out of the virtual machine (VM) onto the hypervisor-level. Through the use of VMI the analyst still has full control of the VM, which allows her to pause the VM at any point in time and to use typical debugging features such as breakpoints and watchpoints. In addition, rVMI provides access to the entire Rekall feature set, which enables an analyst to inspect the kernel and its data structures with ease.

asm-dom - A minimal WebAssembly virtual DOM to build C++ SPA (Single page applications)

  •    C++

asm-dom is a minimal WebAssembly virtual DOM to build C++ SPA (Single page applications). You can write an entire SPA in C++ and compile it to WebAssembly (or asmjs as fallback) using Emscripten, asm-dom will call DOM APIs for you. This will produce an app that aims to execute at native speed by taking advantage of common hardware capabilities, also, you can use your C/C++ code without any change, you haven't to create a binding layer to use it (as we have to do if we want to use a C++ lib from JS). Basically we are creating an app in C++ that call javascript if needed instead of the opposite. You can write only once in C++ and share as much code as possible with desktop/mobile apps and web site. If you want to learn more about performance, please see this. asm-dom is a low-level virtual DOM library. It is unopinionated with regards to how you should structure your application.

kernel virtual machine

  •    C

KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. Using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc.

Atom Virtual Machine

  •    Basic

Atom is a programmable, register-based virtual machine for Win32 computers. The AtomVM can be programmed using a high-level, neo-assembler language called Atom Assembler.

Packer - Build Automated Machine Images

  •    Go

Packer is a tool for building identical machine images for multiple platforms from a single source configuration. It is lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.