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",...