Exemplo n.º 1
0
        private bool Call(OpCode code)
        {
            int address = code.AsInteger() & 0xFFF;

            stack.Push(programCounter);
            Jump(address);
            return(true);
        }
Exemplo n.º 2
0
        private bool ClearOrReturn(OpCode code)
        {
            if (code.AsInteger() == 0x00E0)
            {
                screen.Clear();
            }
            else if (code.AsInteger() == 0x00EE)
            {
                Jump(stack.Pop());
            }
            else
            {
                throw new InvalidOperationException("Invalid opcode detected " + code + "!");
            }

            return(false);
        }
Exemplo n.º 3
0
 private bool JumpToAddressOffset(OpCode code)
 {
     Jump(((code.AsInteger() & 0xFFF) + GetRegister(0)) % 0x1000);
     return(true);
 }
Exemplo n.º 4
0
 private bool SetI(OpCode code)
 {
     registerI = code.AsInteger() & 0xFFF;
     return(false);
 }
Exemplo n.º 5
0
 private bool JumpToAddress(OpCode code)
 {
     Jump(code.AsInteger() & 0xFFF);
     return(true);
 }