         imm (utils/get-byte1 opcode)
         rnd (rand-int 0xFF)
         result (bit-and imm rnd)]
-    (log/info (format "0x%04x CXNN 0x%04x rnd V[%d](0x%02x) <- rand(0x%02x) & NN(0x%02x)" 
-                       (machine-state/get-pc machine-state) opcode reg-num result rnd imm))
+    (trace machine-state opcode "CXNN rnd V[%d](0x%02x) <- rand(0x%02x) & NN(0x%02x)" reg-num result rnd imm)
     (-> machine-state
         (machine-state/set-register reg-num result)
         (machine-state/increment-pc))))

  [machine-state opcode]
  (let [reg-x (utils/get-nibble1 opcode)
        addr-reg (machine-state/get-addr-reg machine-state)]
    (log/info (format "0x%04x FX65 0x%04x mtr V[%d], I(0x%04x)" 
                       (machine-state/get-pc machine-state) opcode reg-x addr-reg))
    (-> (reduce (fn [machine-state index]
                  (let [reg-val (machine-state/get-memory machine-state (+ addr-reg index))]
                    (machine-state/set-register machine-state index reg-val)))

  [machine-state opcode]
  (let [reg-x (utils/get-nibble1 opcode)
        addr-reg (machine-state/get-addr-reg machine-state)]
    (trace machine-state opcode "FX55 rtm V[%d], I(0x%04x)" reg-x addr-reg)
    (-> (reduce (fn [machine-state index]
                  (let [reg-val (machine-state/get-register machine-state index)]
                    (machine-state/set-memory machine-state (+ addr-reg index) reg-val)))
