anchor.diff:      (loop for i from 0 below 256
             do (db (round (+ 124 (* 99 (sin (* 2 pi i 1/256))))))))
   
  +  (align 256)
     (with-label wave-offsets
       (loop with nframes = (expt 2 log2-wavy-period)
             for frame from (1- nframes) downto 0 do
  -      (align 256)
  +      (align 128)
         (emit
          ;; The wave loop counts from num-wavy-lines to 1. So, one extra here.
          (loop for line from num-wavy-lines downto 0
  -             with amp = 3
  +             with amp = 2
                collect (mod (round ( + 128 ; bias to fix carry
  -                                     (* amp (/ line 80)
  -                                        (sin (* 2 pi (/ (+ (* 0.3 (expt line 1.54)) frame)
  +                                     (* amp (/ (expt line 1.1) 80)
  +                                        (sin (* 2 pi (/ (+ (* 0.14 (expt line 1.54)) frame)
                                                           nframes))))))
                             256)))))
  +
  +  (format t "~&Empty space begins at ~X~%" *origin*)
   
     ;; Interrupt vectors:
     (advance-to +nmi-vector+)
  
positive.code:         (dey))
        (dec fill-count)))
  
    ;; Wasteful, but the ROM is mostly empty anyway.
    (procedure fill-attributes
      (dotimes (y 8)
        (dotimes (x 4) (sty (mem +vram-io+)))
        (dotimes (x 4) (sta (mem +vram-io+))))
      (rts))
  
    (procedure initialize-sprites
  
negative.code: 
      ;; Wavy effect
      (flet ((kernel ()
               (poke #b11111110 +ppu-cr2+)
               (clc)
               (lda wt-get)               ; Get wave offset
               (adc scroll-x)             ; Add to BG scroll position
  