             
             // LD_F_V (I is set to the address of the corresponding font block representing the value in register V)
             0xF029: { arg in
-                
+                // Todo:
             },
             
             // LD_B_V (Stores the binary decimal representation of the value of register V in I)
             0xF033: { arg in
-                
+                let registerX = Int(arg)
+                var valueX = self.V[registerX]
+                
+                // With the binary decimal representation (unpacked) every single digit of a number is stored in a seperate byte
+                // Number can be max three digits long (8 bits)
+                for var i = 2; i >= 0; i--
+                {
+                    // Getting the current smallest digit of the whole number
+                    let currentValue = valueX % 10
+                    
+                    // Determine where to store
+                    let index = Int(self.I) + i
+
+                    // Store it
+                    self.memory[index] = currentValue
+                    
+                    // Divide by ten zo in the next run the second smallest digit is the new smallest digit
+                    valueX /= 10
+                }
             },
             
             // LD_I_V (Stores the registers v0 to v(x) starting in memory beginning at location I)
             0xF055: { arg in
-                
+                let registerX = Int(arg)
+                
+                for var currentRegister = 0; currentRegister <= registerX; currentRegister++
+                {
+                    // Get byte from register
+                    let registerByte = self.V[currentRegister]
+                    
+                    // Store it in memory
+                    self.memory[Int(self.I)] = registerByte
+                    
+                    self.I++
+                }
             },
             
             // LD_V_I (Reads from memory location I and stores it in registers V0 to V(x))
-            0xF066: { arg in
-                
+            0xF065: { arg in
+                let registerX = Int(arg)
+                
+                for var currentRegister = 0; currentRegister <= registerX; currentRegister++
+                {
+                    // Get the byte from memory
+                    let memoryByte = self.memory[Int(self.I)]
+                    
+                    // Store it in current register
+                    self.V[currentRegister] = memoryByte
+                    
+                    // And increment the I register memory address
+                    self.I++
+                }
             }
         ]
     }()

            
            // LD_V_K  (Set the register V to the value of the keypress by the keyboard (will wait for keypress))
            0xF00A: { arg in
                
            },
            
            // LD_DT_V (Set the delayTimer to the value in register V)

    }

    /**
     * Determines if the attached sound peripherals should make noise
     */
    private func makeNoise()
    {
