A visual canvas and virtual machine for writing assembly to build cool things. Create machines and connect them together.

Overview

Visual Assembly Canvas

Screenshot of Visual Assembly Canvas

A highly visual assembly editor, infinite canvas for wiring blocks and machines together, bytecode virtual machine runnable natively and on WebAssembly, and a command-line bytecode compiler.

Logbook

See my journal of design decisions and daily progress in my digital garden page.

Part of the "From Opcodes to Algorithms" project

From Opcodes to Algorithms is my 100-day project to implement the most basic build blocks such as memory management, registers, assembly-like instruction sets, compilers, interpreters, up to data structures, algorithms, all the way up to working programs. Maybe even operating systems and neural networks in the future.Let's build it all from scratch in Rust, building one on top of another!

Checklist

  • Linear Memory
  • Registers (PC, SP)
  • Instruction: PUSH
  • Instruction: POP
  • Fetch-Decode-Execute Cycle
  • Instruction: DUP, SWAP, OVER
  • Instruction: INC, DEC
  • Instruction: ADD, SUB, MUL, DIV
  • Instruction: JUMP, JUMP_ZERO, JUMP_NOT_ZERO
  • Instruction: HALT
  • Instruction: LOAD, STORE
  • Char
  • String
  • Print
  • Hello World
  • Simple Call Stack
  • Instruction: CALL, RETURN
  • Scanner and Parser
  • Assembler
  • Bytecode Compiler
  • Command Line Compiler/Interpreter
  • Node-based Visual Editor
  • Actor Model, Mailboxes and Machine Queues
  • Native Orchestrator
  • WebAssembly-based Orchestrator using Actor Model
  • Basic Run and Step
  • Palindrome
  • Array
  • ArrayList
  • Linked List
  • Doubly Linked List
  • Ring Buffer
  • Graph
  • Depth-First Search
  • Breadth-First Search
  • Binary Tree
  • Binary Search Tree
You might also like...
A simple CLI to build VEXCode V5 Pro projects and download them to the V5 brain.

vexer A simple CLI to build VEXCode V5 Pro projects and download them to the V5 brain. (WIP) This currently is only tested on and only works on window

Help Skelly to find bones, combine them to build his body back
Help Skelly to find bones, combine them to build his body back

Bones Collector Help Skelly to find bones, combine them to build his body back! Game made for the bevy Jam#2. Play it here in your browser: itch.io! R

 This repository brings together my studies in the Rust language.
This repository brings together my studies in the Rust language.

Studying_Rust This repository brings together my studies in the Rust language. Study schedule in 90 days start date: 7/24 end date: 10/24 Each topic w

ratlab is a programming platform designed loosely for hobbyist and masochist to analyse and design stuff and things that transform our world?
ratlab is a programming platform designed loosely for hobbyist and masochist to analyse and design stuff and things that transform our world?

ratlab A programming language developed by Quinn Horton and Jay Hunter. ratlab is a programming platform designed loosely for hobbyists and masochists

Library to write x64 Assembly code from Rust, more properly. Designed for the nasm assembler

x64asm Library to write x64 Assembly code from Rust, more properly. Designed for the nasm assembler How to use let mut f = Formatter::new(false); // f

MidenIR for compiling to Miden Assembly from higher-level languages

Miden IR This repository provides a compiler for the Miden VM, specifically for Miden Assembly. It does this by lowering from a higher-level intermedi

Scouty is a command-line interface (CLI) to keep an eye on substrate-based chains and hook things up
Scouty is a command-line interface (CLI) to keep an eye on substrate-based chains and hook things up

scouty is a command-line interface (CLI) to keep an eye on substrate-based chains and hook things up

Rust library for putting things in a grid

rust-term-grid This library arranges textual data in a grid format suitable for fixed-width fonts, using an algorithm to minimise the amount of space

Brutally simple command line app for jotting things down

jot Brutally simple command line app for jotting things down. About jot lets you get things down before you forget, without fiddling folders, naming,

Owner
Phoomparin Mano
Loves TypeScript and Terminal. Co-founder of @creatorsgarten. Learning Rust, Kotlin, Clojure and Elixir.
Phoomparin Mano
Quickly build cool CLI apps in Rust.

QuiCLI Quickly build cool CLI apps in Rust. Getting started Read the Getting Started guide! Thanks This is only possible because of all the awesome li

Pascal Hertleif 538 Dec 5, 2022
A tool for collecting rollup blocks from the Aztec Connect rollup, and exporting them to csv

Aztec Connect Data Gobbler The Aztec Connect Data gobbler is a tool made for extracting data from the Aztec Connect system using only L1 as its source

Lasse Herskind 6 Feb 17, 2023
visual guide for writing Intrinsics(SIMD)

wasm-pack-template A template for kick starting a Rust and WebAssembly project using wasm-pack. Tutorial | Chat Built with ?? ?? by The Rust and WebAs

Ric Li 1 Apr 6, 2022
Horus is an open source tool for running forensic and administrative tasks at the kernel level using eBPF, a low-overhead in-kernel virtual machine, and the Rust programming language.

Horus Horus is an open-source tool for running forensic and administrative tasks at the kernel level using eBPF, a low-overhead in-kernel virtual mach

null 4 Dec 15, 2022
DeFiChain octopus is a codename research & development for DFIP 2111-B: VOC: Ethereum Virtual Machine (EVM) Support.

DeFiCh/octopus DeFiChain octopus is a codename research & development for DFIP 2111-B: VOC: Ethereum Virtual Machine (EVM) Support . Proposed as a DFI

DeFi Meta Chain 6 Apr 18, 2022
Nederlandse programmeertaal. Geinterpreteerd en met dynamische types. Met bytecode compiler en virtual machine, in Rust.

Nederlang Nederlang is een geinterpreteerde programmeertaal, in het Nederlands! Met als bestandsnaam extensie.... .nl! Het maakt gebruik van dynamisch

Danny van Kooten 17 Dec 15, 2022
A little tool to create region-free openingTitle.arc files for New Super Mario Bros. Wii, or to convert them from one region to another

smallworld ...though the mountains divide and the oceans are wide... smallworld is a little tool that can create region-free openingTitle.arc files fo

NSMBW Community 7 Feb 6, 2023
a simple program that you can scrap, is shit and really simple but is cool.

if you want to run it you need to have installed curl by default scrap youtube, but you can change it, also change the number of threads and run: carg

pai 7 Oct 15, 2021
LL Cool Twitch Tools

LL Cool Twitch Tools Hit me up on my twitch channel This project is a playground twitch API playground for me.

Christopher N. KATOYI 9 Dec 23, 2022
Remember how cool smlinux was? It's now time to bring it back.

smbuilder Remember how cool smlinux was? It's now time to bring it back. What is smbuilder? In short, smbuilder (stylized as all lowercase) is an app

ezntek 3 Apr 11, 2023