Ошибка, про которую спрашиваете — в знаке равенства.
if(event.key = a8[event.key]){ — здесь вы просто присваиваете в
event.key значение из
a8. При вводе маленкой
"o", возвращается ноль, и
if () не срабатывает. В двух других случаях возвращается не-ноль, и срабатывает код внутри
if ().
Вообще, мне кажется, надо не по клавишным событиям реагировать, а по любому изменению поля ввода — туда, например, могут вставить скопированный текст. И показывать нужно не единственный символ, а всю строку.