anchor.diff:          (repeat 3
            (repeat 128 split-by-4)
            (repeat 128 linearly))
  +        ;; Compare/contrast:
  +        (repeat 2
  +         (repeat 128
  +                 (jsr 'spin-apart)
  +                 (jsr 'linearly))
  +         (repeat 128 linearly)
  +         (repeat 128 split-by-4)
  +         (repeat 128 linearly))
           (repeat 64 split-by-4)
           (repeat 96 linearly)
  -        ;; Time to change the effect.
  +        ;; Change it up.
           (repeat 256 spin-apart)
           (repeat 96 linearly)
           ;; A little more intense..
  
positive.code:     (clc)                             ; Update scroll-x by rate-pattern
      (adc (abx 'rate-pattern))         ; Add. Use the carry-out below!
      (sta scroll-x)
      (sta (mem +vram-scroll+))         ; Set scroll registers
      (lda ntaddr)                      ; Carry into ntaddr
      (adc (imm 0))                     ; ** Carry in from ADC above. **
      (anda (imm 1))                    ; Carry toggles $2000/$2400
      (sta ntaddr)
      (ora (imm #b10001000))            ; NMI on, BG Pattern table $0000
      (sta (mem +ppu-cr1+))
      (poke #b00011110 +ppu-cr2+)       ; BG and sprites on.
      (lda (imm 0))
      (sta (mem +vram-scroll+))
      ;; Switch pattern tables mid-frame:
      (emit-delay (+ (* 114 143) -15))
      (lda ntaddr)
      (ora (imm #b10011000))            ; NMI on, BG Pattern table $1000
      (sta (mem +ppu-cr1+))
  
      (jsr music-step)
  
      (rts))
  
    ;; This table controls the scrolling.
    (with-label rate-pattern
      (let* ((tr '(1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 0 1))
             (pattern (subseq
                       (append (loop repeat (- 128 (reduce '+ tr))
  
negative.code:         ;; Rest and repeat. Come a little unglued.
          (repeat 256 spin-apart)
          (repeat 253 spin-apart)
  
        (jmp (mem 'mainloop)))))
  
    (align 256)
    (procedure framestep
      (jsr 'wait-for-vblank)
      (lda (mem +ppu-status+))          ; Reset PPU address latch.
      (lda (imm (msb sprite-table)))    ; Sprite DMA transfer.
      (sta (mem +sprite-dma+))
  
      (lda (mem +ppu-status+))          ; Reset address latch, to be safe.
      (ldx phase)                       ; 'phase' steps through rate-pattern
      (inx)
  