anchor.diff:      (+ (ash red 16) (ash green 8) blue)))
   
   (defun put-pixel (x y color)
  -  (let ((base (+ x (* y (getf *resolution* :width)))))
  +  (let ((base (+ x (* y +width+))))
       (setf (aref *frame* (+ 0 (* 3 base))) (color-r color)
             (aref *frame* (+ 1 (* 3 base))) (color-g color)
             (aref *frame* (+ 2 (* 3 base))) (color-b color))))
  
positive.code:                      (logior (wrap-byte (getf meta :x)) x-base))))))))
  
  (defmethod read-vram ((ppu ppu) addr)
    (cond ((< addr #x2000) (get-mapper (nes-mapper *nes*) addr))
          ((< addr #x3f00) (aref (ppu-nametable ppu) (logand addr #x07ff)))
          ((< addr #x4000) (aref (ppu-palette ppu) (logand addr #x1f)))
          (t (error "READ: invalid vram address ~a" addr))))
  
negative.code: 
  ;;;; TODO: Understand the magic of PPUs. A nightmare of state.
  
  (defconstant +width+ 256)
  (defconstant +height+ 240)
  
  (defvar *frame* (bytevector 184320)
    "A single frame to blit. 256*240*3 or width*height*rgb.")
  
  (defvar *color-palette*
    #(#x7C #x7C #x7C #x00 #x00 #xFC #x00 #x00 #xBC #x44 #x28 #xBC #x94 #x00 #x84 #xA8
  