# HG changeset patch # User Robert McIntyre # Date 1340409527 18000 # Node ID 3dbb863eb801d4affebf95117b2166898d595aa8 # Parent 7ba07a6adb0c806ae78065541c4a1bdf9519a8ce accuracy of displayed image is much improved, but there the palettes are still messed up. diff -r 7ba07a6adb0c -r 3dbb863eb801 clojure/com/aurellem/run/image.clj --- a/clojure/com/aurellem/run/image.clj Fri Jun 22 18:38:22 2012 -0500 +++ b/clojure/com/aurellem/run/image.clj Fri Jun 22 18:58:47 2012 -0500 @@ -470,43 +470,32 @@ gen-program (fn [program-length] (flatten - [0x21 ;; load data address start into HL + [0x01 ;; load data address start into BC (reverse (disect-bytes-2 (+ base-address program-length))) - 0x01 ;; load target address into BC + 0x21 ;; load target address into HL (reverse (disect-bytes-2 target-address)) 0x1E ;; total-rows (18) -> E - 1 + 18 0x16 ;; total columns (20) -> D 20 - ;; wite one block (8x8 pixels) to screen. - 0x3E - 16 ;; load 16 into A + ;; data x-fer loop start + 0x0A ;; (BC) -> A; + 0x03 ;; INC BC; + 0x22 ;; A -> (HL); HL++; - 0xF5 ;; push A - - ;; data x-fer loop start - 0x2A ;; (HL) -> A; HL++; - 0x02 ;; A -> (BC); - 0x03 ;; INC BC; - 0xF1 ;; pop A - - 0x3D ;; dec A - 0x20 ;; - (->signed-8-bit -8) ;; continue writing block - 0x15 ;; dec D 0x20 - (->signed-8-bit -13) ;; continue writing row + (->signed-8-bit -6) ;; continue writing row ;; row is complete, advance to next row - ;; HL += 192 + ;; HL += 12 0xC5 ;; push BC @@ -514,7 +503,7 @@ 0 0x0E - 0 ;; 192 -> C + 12 ;; 12 -> C 0x09 ;; HL + BC -> HL @@ -522,7 +511,7 @@ 0x1D ;; dec E 0x20 - (->signed-8-bit -23) ;; contunue writing picture + (->signed-8-bit -18) ;; contunue writing picture 0xC3 (reverse