+ my $b = $old_bsr;
+
+ if ( $what eq 'p' && length($v) == 1 ) {
+
+ my $pin = $p;
+ warn "# pin $pin = $v\n";
+
+ my $io = $pin2io->[$pin];
+ my $bit = $io2bit->{$io}->[0];
+
+ $b =
+ substr($old_bsr,0,$bit+1) # leave input as-is
+ . ( $v eq 'Z' ? 1 : 0 ) # control
+ . ( $v & 1 ) # output
+ . substr($old_bsr,$bit+3)
+ ;
+
+ } elsif ( $what eq 'o' && $p < 288 ) {
+ my $o = $p;
+ $b = substr($old_bsr,0,$o) . reverse $v . substr($old_bsr,$o+length($v));
+ } else {
+ print "IGNORED ",dump( $what, $p, $v );
+ }