Skip to content

Creou/OISCVM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple virtual machine of a "one instruction set" cpu written in C#.

Based on the single instruction SUBLEQ (Subtract and 
branch if less than or equal to 0).

The virtual machine loads a program into memory and executes it.
Includes a memory mapped console output device for displaying results.

Project includes an assembler for building binary files from assembly source.

Assembler has support for comment lines, source and binary mode addressing, labeled addressing, labeled memory and auto branching to next instruction.

===

All code in this project is covered under the terms 
of the GNU General Public License a copy of which 
is available in the same directory under the file 
name LICENSE

===

This program is Copyright 2010 Simon P Stevens

==

TODO:

Input device: Somehow have keyboard input written to memory locations.
Interupts: 
    Hardware - User registerable interrupts to run specific code on hardware events (such as keyboard events?)
               Also, registerable by hardware (E.g. Console device could use a memory address to trigger a display update. This could be an interruppted address)
    Software - Triggered by changes to specific memory addresses. User can register code to be run when address is set to a flag value.
Disk device: A mapped memory location that can be written to to send commands to a disk controller. Then have the disk controller load the requested memory from disk into main memory. The disk controller could either be for emulated binary disks, or for host disk access.

About

Simple virtual machine of a "one instruction set" cpu.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages