Skip to content

creeperlv/univm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UNIVM

Short for Universal Virtual Machine

Runs a custom instruction set.

128-Bit wide per instruction.

0...31 32..127
Operation Data
OpCode Data0,Data1,Data2

Add functionality via SysCall.

Assembly Structure

Part Desc
Header Header information of the assembly
Text Text Section of the assembly
Program Program Section of the assembly

Header

0..3 4..7 8..11
Global Mem Length Text Count Instruction Count

Memory Layout

ID 0: Stack Always preallocated, offset as using size.

Implementations

.NET Implementation

Source codes are under univm.net folder.

Currently .Net version is the most complete implementation. It includes the VM and assembler, they are univm and univmc.

This implementation heavily depends on unsafe and pointers to improve performance and save memory/gc. Almost like writing in C. ;-P

build-bflat.sh build with bflat but only build univm.

C Implementation

Source codes are under univm.c folder.

Currently, C version is not working and no plan of implementing assembler in C.

C version aims on maximizing compatibility. Currently almost only use C99.

Build script are written in ash-compatible shell script.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages