JSFiddle - React, Tailwind, and code Playground

HTML

<button onclick="program_setup('not')">NOT gate</button>
<button onclick="program_setup('or')">OR gate</button>
<button onclick="program_setup('sum1')">SUM (1 bit+1bit)</button>
<button onclick="program_setup('integer_counter')">count</button>
<button onclick="program_setup('integer_sum')">sum</button>
<div id="log"></div>

JavaScript

function log_write(text){
	document.all.log.innerHTML+=text
}

function io_read_bit_from_input_port(){
  html="in: <span>"
  + "<button onclick='read_bit(this, 0)'>0</button>"
  + "<button onclick='read_bit(this, 1)'>1</button>"
  + " (select input!)  </span>"
	log_write(html+"<br>")
}

read_bit = function(source, value){
  bit_data=value
  source.parentElement.innerHTML=value
  data_input = true
  timeout=setTimeout(step,0)
}

function io_write_bit_to_output_port(bit_data){
	log_write("out: "+bit_data+"<br>")
}

program_not=[

["DESTINATION_PATH_SELECTOR_BIT", "ORIGIN_INPUT_PORT", 1,2],

["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ONE", "INSTRUCTION_EXIT","INSTRUCTION_EXIT"],

["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ZERO", "INSTRUCTION_EXIT","INSTRUCTION_EXIT"],

]

program_or=[
["DESTINATION_PATH_SELECTOR_BIT", "ORIGIN_INPUT_PORT", 1,2],
["DESTINATION_PATH_SELECTOR_BIT", "ORIGIN_INPUT_PORT", 3,4],
["DESTINATION_PATH_SELECTOR_BIT", "ORIGIN_INPUT_PORT", 4,4],


["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ZERO", "INSTRUCTION_EXIT","INSTRUCTION_EXIT"],

["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ONE", "INSTRUCTION_EXIT","INSTRUCTION_EXIT"],

]

program_sum1=[
["DESTINATION_PATH_SELECTOR_BIT", "ORIGIN_INPUT_PORT", 1,2],
["DESTINATION_PATH_SELECTOR_BIT", "ORIGIN_INPUT_PORT", 3, 5],
["DESTINATION_PATH_SELECTOR_BIT", "ORIGIN_INPUT_PORT", 7, 9],

["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ZERO", 4,4],
["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ZERO", "INSTRUCTION_EXIT","INSTRUCTION_EXIT"],

["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ONE", 6,6],
["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ZERO", "INSTRUCTION_EXIT","INSTRUCTION_EXIT"],

["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ONE", 8,8],
["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ZERO", "INSTRUCTION_EXIT","INSTRUCTION_EXIT"],

["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ZERO", 10,10],
["DESTINATION_OUTPUT_PORT", "ORIGIN_CONSTANT_ONE",...