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.
Part | Desc |
---|---|
Header | Header information of the assembly |
Text | Text Section of the assembly |
Program | Program Section of the assembly |
0..3 | 4..7 | 8..11 |
---|---|---|
Global Mem Length | Text Count | Instruction Count |
ID 0: Stack Always preallocated, offset as using size.
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
.
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.