anchor.diff:    (setf (status-bit 1) (if (zerop value) 1 0)
           (status-bit 7) (if (negative-p value) 1 0)))
   
  -(defun maybe-update-cycle-count (cpu address)
  -  "If ADDRESS crosses a page boundary, add an extra cycle to CPU's count."
  -  (when (not (= (logand (absolute cpu) #xff00)
  +(defun maybe-update-cycle-count (cpu address &optional start)
  +  "If ADDRESS crosses a page boundary, add an extra cycle to CPU's count. If
  +START is provided, test that against ADDRESS. Otherwise, use (absolute cpu)."
  +  (when (not (= (logand (or start (absolute cpu)) #xff00)
                   (logand address #xff00)))
       (incf (cpu-cc cpu))))
   
  
positive.code: 
  (defun stack-push (value)
    "Push the given VALUE on the stack and decrement the SP."
    (setf (get-byte (+ (cpu-sp *cpu*) 256)) (wrap-byte value))
    (decf (cpu-sp *cpu*))
    (wrap-stack *cpu*))
  
  
negative.code:     result))
  
  (defmethod branch-relative ((cpu cpu))
    (let ((addr (zero-page cpu))
          (result nil))
      (incf (cpu-cc cpu))
      (incf (cpu-pc cpu))
      (if (not (zerop (logand addr #x80)))
          (setf result (wrap-word (- (cpu-pc cpu) (logxor addr #xff) 1)))
          (setf result (wrap-word (+ (cpu-pc cpu) addr))))
      (maybe-update-cycle-count cpu result (cpu-pc cpu))
      result))
  