
This update focuses on making Bitvoxel a stronger circuit-building sandbox by adding the foundation for programmable memory and custom assembly.
The goal is to let players build projects that do more than simple logic gates. With memory blocks and a programmable assembler, circuits can now store values, read from addresses, write data, and eventually power much more advanced builds.
Bitvoxel now has memory address and data blocks.
Address blocks let a circuit choose which memory address to read from or write to. Data blocks can output the value stored at that address, and they can also be used as input when writing new values into memory.
The memory system is flexible. Players can decide how many address bits and data bits their project needs based on the memory blocks they place.
The memory panel has been improved so it is more useful while building and debugging circuits.
You can now inspect memory addresses, scroll through memory, edit values directly, and see live bus information from the circuit:
Current address
Data input
Data output
Write enable state
Clock state
Recent write activity
The currently addressed memory row is also marked, making it easier to see what your circuit is reading or writing while it runs.
The coding editor now works more like a real assembler.
Bitvoxel does not give you a fixed CPU instruction set. Instead, you define the instructions yourself. This means the assembler can match the computer or circuit you are actually building.
Example:
"
.BITS 12
.CONST OP_MOV 0001
.REG A 0
.REG B 1
.MACRO MOV SRC DST = OP_MOV | (SRC << 4) | DST
MOV A, B
"
You can also define instructions by laying out the bits directly:
"
.INSTRUCTION MOV SRC DST 0001SSSSDDDD
"
This lets players decide exactly where opcode bits, source bits, destination bits, constants, and custom fields go.