viba's useless rudimentary computing environment
Go to file
2024-04-19 22:03:55 -06:00
examples this is how two's complement works 2024-04-15 19:54:29 -06:00
src remove SDL_RENDERER_ACCELERATED flag 2024-04-19 22:03:55 -06:00
vrcasm allow assembler to read from stdin 2024-04-15 20:08:30 -06:00
.gitignore add README and example programs 2024-04-11 23:36:15 -06:00
LICENSE.txt add license 2024-04-14 15:18:50 -06:00
Makefile refactor 2024-04-15 11:16:52 -06:00
README.md add documentation link to readme 2024-04-12 22:32:51 -06:00

vurce

vurce (viba's useless rudimentary computing environment) is a 16-bit stack-based virtual machine. one inspiration for it was another 16-bit stack machine, Uxn (by which I mean the way I/O works was basically stolen from Uxn). its goals include:

  • satisfy my unhealthy obsession with VMs
  • be almost stupidly simple

for documentation on the machine and its assembly language, see the webpage.

vurce is a work in progress. some I/O devices are not yet implemented, and the existing ones are subject to change.

how to the software

to build the vurce emulator, run make. this will create two programs: vurce is the standard emulator with all the devices, while vurcec is intended to run CLI programs and will run the program's reset vector once before exiting.

vrcasm/vrcasm.lua is an assembler written in Lua 5.3. to assemble a file, do lua vrcasm.lua [inputFile] [outputFile] ([outputFile] will be out.vurce if unspecified).

examples/ contains a few simple test programs along with their source code:

  • mouse.vurce: displays a very terrible looking mouse cursor.
  • prime.vurce: a CLI program which outputs prime numbers.
  • rect.vurce: draws a bouncing rectangle which cycles through all possible colors.
  • type.vurce: display characters typed on the keyboard. currently does not support backspace or draw a text cursor, so suffer.