local function queueBit(gate, bit) table.insert(gate.queueBits, 1, bit) end return function(gate, argv) if argv[1]=="\\:" then argv[1] = ";" end local keycode = keyboard_keyToCode[argv[1]] or keyboard_keyToCode["invalid"] local status = keyboard_strToBool[argv[2]] local code = keycode+(status and 128 or 0) if #gate.queueBits > 1024 return end queueBit(gate, 1) for bitidx = 1, 8 do local val = bit.band(code, 0x80) queueBit(gate, val) code = bit.lshift(code, 1) end queueBit(gate, 0) Gate.queue(gate, 0) end