- { I => $I, mem_addr => $addr, op => OP_LOADI, CS => 0 }
+ { I => $I, mem_addr => $addr, op => OP_LOADI }
+}
+
+sub route {
+ my ($addr, $dest_addr, $led) = @_;
+ $led //= 0;
+ my $I = $dest_addr;
+ $I |= $led << 12;
+ send_
+ { I => $I, mem_addr => $addr, op => OP_ROUTE }
+}
+
+sub storei {
+ my ($addr, $I) = @_;
+ send_
+ { I => $I, mem_addr => $addr, op => OP_STOREI }
+}
+
+sub led {
+ my ($addr, $mode, $offset_leds) = @_;
+ my $I = $offset_leds;
+ $I |= $mode << 4;
+ send_
+ { I => $I, mem_addr => $addr, op => OP_LED }
+}
+
+sub ledm {
+ my ($addr, $offset) = @_;
+ $offset //= 0;
+ led $addr, 1, $offset;
+}
+
+sub ledi {
+ my ($leds) = @_;
+ led 0, 0, $leds;