2
0
Fork
You've already forked VarvaraPi
0
Uxn/Varvara VM for the Raspberry Pi
  • C++ 86.5%
  • C 10.8%
  • Makefile 2.7%
2026年06月24日 18:14:33 -07:00
src Fix missing pointer value in system_print 2026年06月24日 18:14:33 -07:00
.gitignore Implement mouse device 2025年08月25日 10:21:22 -07:00
Makefile Stubbed out datetime device 2025年08月29日 09:29:35 -07:00
Readme.md Update readme build/testing details 2026年05月27日 08:57:22 -07:00
Rules.mk Initial commit of basic functionality based on current Takapi state 2025年08月20日 11:34:08 -07:00

VarvaraPi

VarvaraPi is a Varvara VM implementation for the Raspberry Pi line of single board computers.

TODO

  • Basic running kernel with serial reboot support
  • Initialize VM core
  • Load program from file
  • Evaluate/prass opctest test program (including printed output)
  • Console device
  • System device
  • Screen device
  • Controller device
  • Mouse device (with USB mouse)
  • File device
  • Datetime device
  • Audio device

Known Varvara Software Issues

  • Left freezes when trying to show directory listing
  • Launcher freezes when trying to launch programs
  • Potato doesn't start

Status

This project is in the very early proof-of-concept stage.

Code Quality

This project is currently a mess of C code pretending to be C++. I hope to improve that later, but for now the focus is on getting things to work at all.

Configuration

A file named "cmdline.txt" may be created in the root of the SD card for some configuration settings, which must be space delimited on a single line. There should be no trailing newline character.

  • width=640
  • height=480
  • keymap=DE (DE, DV, ES, FE, IT, UK, US)

For example: width=800 height=600 keymap=US

Building

  • Install to ARM GNU toolchain
    • In debian/ubuntu/etc: sudo apt install gcc-arm-none-eabi should work as well
  • Clone/build Circle
    • Edit Rules.mk to set RASPI to your Pi version, and PREFIX = arm-none-eabi
    • Run ./makeall clean and ./makeall
  • Run make in circle/addon/SDCard to build the SD card library
  • Run make in circle/addon/fatfs to build the FATFS library
  • Edit Makefile to point to your compiled Circle library
  • Run make

Testing

While developing Varavarpi I used flashy for rapid testing.

Initially I used v3, installed via: sudo npm install -g toptensoftware/flashy, but between fall 2025 and spring 2026 something happened with git credentials (it seems) and that no longer works.

Notes to myself regarding flashy v2:

  • Install: npm install --global @toptensoftware/flashy@2.0.15
  • Flash varvarapi: sudo flashy /dev/ttyUSB1 kernel7.img --flashBaud:115200 (the default flash speed throws an error for me, faster speeds may work)