diff options
Diffstat (limited to 'src/vcpu.c')
| -rw-r--r-- | src/vcpu.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -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: |
