anchor.diff:      (setf (status-bit :interrupt cpu) 1)
       (setf (cpu-pc cpu) (get-word #xfffe))))
   
  -(defopcode bvc (:docs "Branch on Overflow Clear" :track-pc nil)
  +(defasm bvc (:docs "Branch on Overflow Clear" :track-pc nil)
       ((#x50 2 2 relative))
     (branch-if (zerop (status-bit :overflow cpu)) cpu))
   
  -(defopcode bvs (:docs "Branch on Overflow Set" :track-pc nil)
  +(defasm bvs (:docs "Branch on Overflow Set" :track-pc nil)
       ((#x70 2 2 relative))
     (branch-if (plusp (status-bit :overflow cpu)) cpu))
   
  -(defopcode clc (:docs "Clear Carry Flag")
  +(defasm clc (:docs "Clear Carry Flag")
       ((#x18 2 1 implied))
     (setf (status-bit :carry cpu) 0))
   
  -(defopcode cld (:docs "Clear Decimal Flag")
  +(defasm cld (:docs "Clear Decimal Flag")
       ((#xd8 2 1 implied))
     (setf (status-bit :decimal cpu) 0))
   
  -(defopcode cli (:docs "Clear Interrupt Flag")
  +(defasm cli (:docs "Clear Interrupt Flag")
       ((#x58 2 1 implied))
     (setf (status-bit :interrupt cpu) 0))
   
  -(defopcode clv (:docs "Clear Overflow Flag")
  +(defasm clv (:docs "Clear Overflow Flag")
       ((#xb8 2 1 implied))
     (setf (status-bit :overflow cpu) 0))
   
  -(defopcode cmp (:docs "Compare Memory with Accumulator")
  +(defasm cmp (:docs "Compare Memory with Accumulator")
       ((#xc1 6 2 indirect-x)
        (#xc5 3 2 zero-page)
        (#xc9 2 2 immediate)
  
positive.code: ;; https://github.com/mnaberez/py65/blob/master/src/py65/devices/mpu6502.py
  ;; http://nesdev.parodius.com/6502.txt
  
  ;;;; DESIGN:
  ;; Why methods and a case instead of functions inline in the case?
  ;; Well, now we can use :around methods and the MOP to be awesome/crazy.
  ;; Plus who wants one big case statement for a CPU? Ugh. Abstract!
  ;; Performance is less interesting than cool features and crazy hacks.
  ;; Optimize later! See Frodo redpill + ICU64 for an example of what's possible.
  ;; Worth using sb-sprof sampling profiler to find low hanging fruit.
  
  ; TODO: Add support for Decimal mode. (not supported on NES)
  (defopcode adc (:docs "Add to Accumulator with Carry")
      ((#x61 6 2 indirect-x)
       (#x65 3 2 zero-page)
       (#x69 2 2 immediate)
  
negative.code:      (#x75 4 2 zero-page-x)
       (#x79 4 3 absolute-y)
       (#x7d 4 3 absolute-x))
    (let ((result (+ (cpu-ar cpu) (getter mode style cpu) (status-bit :carry cpu))))
      (set-flags-if cpu :carry (> result #xff)
                    :overflow (overflow-p result (cpu-ar cpu) (getter mode style cpu))
                    :negative (logbitp 7 result)
                    :zero (zerop (wrap-byte result)))
      (setf (cpu-ar cpu) (wrap-byte result))))
  
  (defasm and (:docs "And with Accumulator")
      ((#x21 6 2 indirect-x)
       (#x25 3 2 zero-page)
       (#x29 2 2 immediate)
  