You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Reid 'arrdem' McKenzie 618314a7bb
There are now unimplemented opcodes
1 month ago
assets WIP in the direction of the graphics device 1 month ago
doc And passing all stock(ish) test cases 1 month ago
resources/test And passing all stock(ish) test cases 1 month ago
src There are now unimplemented opcodes 1 month ago
tests Clippy fix 1 month ago
.gitignore Getting started 2 months ago
Cargo.lock WIP in the direction of the graphics device 1 month ago
Cargo.toml WIP in the direction of the graphics device 1 month ago
LICENSE.md Getting started 2 months ago
README.md Getting started 2 months ago

README.md

Varvara's rusty bicycle

This project is a (re)implementation of the Varvara personal computer in Rust, intended to target WASM and a web browser emulator.

  • Varvara (upstream docs) is an 8bi personal computer reminiscent of video game controllers. Varvara is also a character in Rekka's art; this is her personal computer.
  • Tal (upstream docs) is the reference assembler language for programming. The Tal is a friendly, hoofed quadruped implied to be helping Varvara.
  • UXN (upsteram docs) is the instruction set underlying the Varvara computer.

WTF UXN?

The entire uxn/tal/varvara stack will likely scan as unusual to professional developers. Why design an 8/16bi microarchitecture in 202X?

The answer is that varvara is best understood as a political and art project. Devine and Rekka are artists, living on a boat and embracing a minimalist/solarpunk/permaculture politic. While Devine appears to have more professional software development experience than they let on, the entire project is amateur.

To those who've spent time with computer design, many design decisions in the system may seem odd. Fundamentally the answer to many of the WTFs is that ... varvara isn't designed for that.

Why doesn't it have signed arithmetic? Why doesn't it have memory protection? Why doesn't it have floating point? Why doesn't it have a real multiprocessing/interrupt model? Why doesn't it have a networking model? Why doesn't it have ...

Because it's an unscalable¹ vision of personal computing. It's designed to let a person with limited computing and network resources build their own reality marble of personal software.

"you build your pocket universe, and then in you go"

There's a bunch of software for Varvara, all of which should emphasize this point. Building your own spreadsheet engine is certainly a statement.

Why this project?

Having done some compiler and computer architecture work, the Varvara computer was ... baffling. The documentation is far more artistic than implementer or even user centric.

This project is the results of my effort to reverse engineer and document the Varvara system well enough to re-implement it.

Varvara isn't my vision of my personal computer. I've got different requirements and expectations. But I have a lot of respect for the relative success of the project, especially considering that I've spun my wheels on my own vision for years. So consider this my meditation on an artifact.

License

This software is released under the Anti-capitalist software license v1.4.