diff clojure/com/aurellem/run/image.clj @ 494:79606f173658

improbed color display kernel.
author Robert McIntyre <rlm@mit.edu>
date Thu, 07 Jun 2012 23:11:18 -0500
parents 783a09c84a28
children 1d81ddd4fa41
line wrap: on
line diff
     1.1 --- a/clojure/com/aurellem/run/image.clj	Thu Jun 07 23:03:05 2012 -0500
     1.2 +++ b/clojure/com/aurellem/run/image.clj	Thu Jun 07 23:11:18 2012 -0500
     1.3 @@ -176,23 +176,18 @@
     1.4     gameboy rgb."
     1.5    [[r g b]]
     1.6    ;; construct a kernel that displays a single color
     1.7 -  (let [palettes (repeat 8 [r g b])
     1.8 -        kernel-address 0xC000
     1.9 -        kernel
    1.10 -        (flatten
    1.11 -         [0xF3 ;; disable interrupts
    1.12 -          (frame-metronome)
    1.13 -          (set-palettes
    1.14 -           obj-palette-select
    1.15 -           obj-palette-data
    1.16 -           palettes)
    1.17 -          (set-palettes
    1.18 -           bg-palette-select
    1.19 -           bg-palette-data
    1.20 -           palettes)
    1.21 -          (infinite-loop)])]
    1.22 +  (let
    1.23 +      [palettes (repeat 8 [r g b])
    1.24 +       kernel-address 0xC000
    1.25 +       kernel
    1.26 +       [0xF3 ;; disable interrupts
    1.27 +        (clear-music-registers)
    1.28 +        (frame-metronome)
    1.29 +        (set-palettes obj-palette-select obj-palette-data palettes)
    1.30 +        (set-palettes bg-palette-select bg-palette-data palettes)
    1.31 +        (infinite-loop)]]
    1.32      (-> (set-memory-range (second (music-base))
    1.33 -                          kernel-address kernel)
    1.34 +                          kernel-address (flatten kernel))
    1.35          (PC! kernel-address))))
    1.36  
    1.37