В процессоре/чипсете. На современных компах принципиальной разницы между чтением 64 порта и вызовом int 16 нет. В обоих случаях будет выполняться огромная куча кода. Тогда зачем всё это?
Возможно, если бы ни эти твои слова, то я бы не стал пытаться писать этот код, мало того что без INTов, так ещё и без INов/OUTов в тексте кода, и при этом с клавы вводятся все её символы... На всё, про всё <= 69 байт... Но я считаю что это жульничество).
Ну а если с портами, и 12 сканкодов, то получилось аж 93 байта без жульничества. (+1 сканкод = +2 байта)