package vm;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class Keyboard extends KeyAdapter {
    private static final int[] KEY_MAP= {
            KeyEvent.VK_4, // 1
            KeyEvent.VK_5, // 2
            KeyEvent.VK_6, // 3
            KeyEvent.VK_7, // 4
            KeyEvent.VK_R, // 5
            KeyEvent.VK_Y, // 6
            KeyEvent.VK_U, // 7
            KeyEvent.VK_F, // 8
            KeyEvent.VK_G, // 9
            KeyEvent.VK_H, // A
            KeyEvent.VK_J, // B
            KeyEvent.VK_V, // C
            KeyEvent.VK_B, // D
            KeyEvent.VK_N, // E
            KeyEvent.VK_M, // F
    };

    private int currentKeyPressed;


    public Keyboard() {
        currentKeyPressed = 0;
    }

    @Override
    public void keyPressed(KeyEvent keyEvent) {
        currentKeyPressed = mapKeycodeToChip8Key(keyEvent.getKeyCode());
    }

    @Override
    public void keyReleased(KeyEvent keyEvent) {
        currentKeyPressed = 0;
    }

    public int getCurrentKeyPressed() {
        return currentKeyPressed;
    }

    private int mapKeycodeToChip8Key(int keycode) {
        for (int i = 0; i < KEY_MAP.length; i++) {
            if (KEY_MAP[i] == keycode) {
                return i + 1;
            }
        }

        return 0;
    }
}

@@ -182,17 +182,17 @@
 vent.VK_
-4
+1
 , // 1%0A 
@@ -214,17 +214,17 @@
 vent.VK_
-5
+2
 , // 2%0A 
@@ -246,17 +246,17 @@
 vent.VK_
-6
+3
 , // 3%0A 
@@ -278,17 +278,17 @@
 vent.VK_
-7
+Q
 , // 4%0A 
@@ -310,17 +310,17 @@
 vent.VK_
-R
+W
 , // 5%0A 
@@ -342,17 +342,17 @@
 vent.VK_
-Y
+E
 , // 6%0A 
@@ -378,9 +378,9 @@
 .VK_
-U
+A
 , //
@@ -406,17 +406,17 @@
 vent.VK_
-F
+S
 , // 8%0A 
@@ -442,9 +442,9 @@
 .VK_
-G
+D
 , //
@@ -474,9 +474,9 @@
 .VK_
-H
+Z
 , //
@@ -506,9 +506,9 @@
 .VK_
-J
+C
 , //
@@ -534,17 +534,17 @@
 vent.VK_
-V
+4
 , // C%0A 
@@ -566,17 +566,17 @@
 vent.VK_
-B
+R
 , // D%0A 
@@ -602,9 +602,9 @@
 .VK_
-N
+F
 , //
@@ -630,17 +630,17 @@
 vent.VK_
-M
+V
 , // F%0A 

Update key map