Lo más directo es un arreglo de bytes de unos 512, con onkeydown colocas en 1 y con onkeyup en 0, inicialmente todo en 0.
Luego lees el estado de la matriz desde donde quieras. Ojo que muchas combinaciones de teclas bloquean a otras, por ejemplo no puedes hacer que los cuatro cursores estén presionados al mismo tiempo, por lo menos en mi teclado.
Grave problema para jugar Mortal Kombat en un solo teclado.