Beispiel #1
0
 def op_8xyE(self):
     # print("8xyE")
     x = get_x(self.opcode)
     y = get_y(self.opcode)
     self.register[15] = (self.register[x] >> 7) & 0x01
     self.register[x] *= 2
     if self.register[x] > 255:
         self.register[x] = self.register[x] & 0xFF
Beispiel #2
0
 def op_8xy7(self):
     # print("8xy7")
     x = get_x(self.opcode)
     y = get_y(self.opcode)
     if self.register[y] > self.register[x]:
         self.register[15] = 1
     else:
         self.register[15] = 0
     self.register[x] = (self.register[y] - self.register[x]) & 0xFF
Beispiel #3
0
 def op_8xy4(self):
     # print("8xy4")
     x = get_x(self.opcode)
     y = get_y(self.opcode)
     self.register[x] = self.register[y] + self.register[x]
     if self.register[x] > 255:
         self.register[x] = self.register[x] & 0xFF
         self.register[15] = 1
     elif self.register[x] <= 255:
         self.register[15] = 0
Beispiel #4
0
 def op_Dxyn(self):
     # print("Dxyn")
     x = get_x(self.opcode)
     y = get_y(self.opcode)
     n = get_n(self.opcode)
     drawable_chunk = self.get_binary_array(n)
     for y_index, row in enumerate(drawable_chunk):
         for x_index, pixel_bit in enumerate(row):
             current_y, current_x = self.get_coordinates(
                 y, y_index, x, x_index)
             self.draw_pixel_to_array(pixel_bit, current_y, current_x)
Beispiel #5
0
 def op_9xy0(self):
     # print("9xy0")
     x = get_x(self.opcode)
     y = get_y(self.opcode)
     if self.register[x] != self.register[y]:
         self.pc += 2
Beispiel #6
0
 def op_8xy6(self):
     # print("8xy6")
     x = get_x(self.opcode)
     y = get_y(self.opcode)
     self.register[15] = self.register[x] & 0x01
     self.register[x] = self.register[x] >> 1
Beispiel #7
0
 def op_8xy3(self):
     # print("8xy3")
     x = get_x(self.opcode)
     y = get_y(self.opcode)
     self.register[x] = self.register[x] ^ self.register[y]
Beispiel #8
0
 def op_8xy2(self):
     # print("8xy2")
     x = get_x(self.opcode)
     y = get_y(self.opcode)
     self.register[x] = self.register[x] & self.register[y]
Beispiel #9
0
 def op_8xy1(self):
     # print("8xy1")
     x = get_x(self.opcode)
     y = get_y(self.opcode)
     self.register[x] = self.register[x] | self.register[y]