Skip to content

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

Notifications You must be signed in to change notification settings

heypoom/visual-assembly-canvas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Topics

Resources

Stars

Watchers

Forks