- C++ 86.5%
- C 10.8%
- Makefile 2.7%
| src | Fix missing pointer value in system_print | |
| .gitignore | Implement mouse device | |
| Makefile | Stubbed out datetime device | |
| Readme.md | Update readme build/testing details | |
| Rules.mk | Initial commit of basic functionality based on current Takapi state | |
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-eabishould work as well
- In debian/ubuntu/etc:
- Clone/build Circle
- Edit
Rules.mkto setRASPIto your Pi version, andPREFIX = arm-none-eabi - Run
./makeall cleanand./makeall
- Edit
- Run
makein circle/addon/SDCard to build the SD card library - Run
makein circle/addon/fatfs to build the FATFS library - Edit
Makefileto 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)