summaryrefslogtreecommitdiff
path: root/src/vcpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vcpu.c')
-rw-r--r--src/vcpu.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/vcpu.c b/src/vcpu.c
index 7de8a71..504aa7a 100644
--- a/src/vcpu.c
+++ b/src/vcpu.c
@@ -1,6 +1,8 @@
#include "vcpu.h"
#include "mem.h"
#include "screen.h"
+#include "keypad.h"
+
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
@@ -201,7 +203,14 @@ void VCPUExecute(){
break;
case 0xE:
- // TODO
+ if(State.NN==0x9E){ // Skip if keypress in VX
+ if(KeypadIsPressed(State.V[State.X]&0x0F)){
+ State.PC+=2;
+ }
+ }else if(State.NN==0xA1){ // Skip if not keypress in VX
+ if(!KeypadIsPressed(State.V[State.X]&0x0F))
+ State.PC+=2;
+ }
break;
case 0xF:
@@ -236,7 +245,7 @@ void VCPUExecute(){
MemStore(&hundreds,1,State.I);
MemStore(&tens,1,State.I+1);
MemStore(&units,1,State.I+2);
- // printf("hundreds:%d tens:%d units:%d byte:%d\n",hundreds,tens,units,State.V[State.X]);
+ //printf("hundreds:%d tens:%d units:%d byte:%d\n",hundreds,tens,units,State.V[State.X]);
break;
case 0x55: