From 4ad64d82c3007f4dffd973c8f8a22653312357c5 Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Mon, 25 Dec 2023 21:29:52 +0100 Subject: [PATCH] Minor changes --- src/keypad.c | 11 +++++++++++ src/keypad.h | 1 + src/vcpu.c | 8 +++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/keypad.c b/src/keypad.c index 30b4479..d106642 100644 --- a/src/keypad.c +++ b/src/keypad.c @@ -26,3 +26,14 @@ int KeypadIsPressed(unsigned char c){ } return 0; } + +int KeypadGetPressed(){ + int keycode=GetKeyPressed(); + if(keycode){ + for(int i=0;i<16;i++){ + if(map[i]==keycode) + return 1; + } + } + return -1; +} diff --git a/src/keypad.h b/src/keypad.h index d762be4..9339280 100644 --- a/src/keypad.h +++ b/src/keypad.h @@ -3,4 +3,5 @@ #include "raylib.h" int KeypadIsPressed(unsigned char c); +int KeypadGetPressed(); diff --git a/src/vcpu.c b/src/vcpu.c index 504aa7a..67dea13 100644 --- a/src/vcpu.c +++ b/src/vcpu.c @@ -220,7 +220,13 @@ void VCPUExecute(){ break; case 0x0A: - // TODO + int key=KeypadGetPressed(); + if(key >= 0){ + State.V[State.X]=key&0x0F; + } + else + State.PC-=2; // Go back to last instruction (loop until key is pressed) + break; case 0x15: // Set timer