Mercurial > vba-clojure
diff clojure/com/aurellem/run/image.clj @ 513:3dbb863eb801
accuracy of displayed image is much improved, but there the palettes are still messed up.
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Fri, 22 Jun 2012 18:58:47 -0500 |
parents | 7ba07a6adb0c |
children | a00981db92da |
line wrap: on
line diff
1.1 --- a/clojure/com/aurellem/run/image.clj Fri Jun 22 18:38:22 2012 -0500 1.2 +++ b/clojure/com/aurellem/run/image.clj Fri Jun 22 18:58:47 2012 -0500 1.3 @@ -470,43 +470,32 @@ 1.4 gen-program 1.5 (fn [program-length] 1.6 (flatten 1.7 - [0x21 ;; load data address start into HL 1.8 + [0x01 ;; load data address start into BC 1.9 (reverse 1.10 (disect-bytes-2 (+ base-address program-length))) 1.11 1.12 - 0x01 ;; load target address into BC 1.13 + 0x21 ;; load target address into HL 1.14 (reverse (disect-bytes-2 target-address)) 1.15 1.16 0x1E ;; total-rows (18) -> E 1.17 - 1 1.18 + 18 1.19 1.20 0x16 ;; total columns (20) -> D 1.21 20 1.22 1.23 - ;; wite one block (8x8 pixels) to screen. 1.24 - 0x3E 1.25 - 16 ;; load 16 into A 1.26 + ;; data x-fer loop start 1.27 + 0x0A ;; (BC) -> A; 1.28 + 0x03 ;; INC BC; 1.29 + 0x22 ;; A -> (HL); HL++; 1.30 1.31 - 0xF5 ;; push A 1.32 - 1.33 - ;; data x-fer loop start 1.34 - 0x2A ;; (HL) -> A; HL++; 1.35 - 0x02 ;; A -> (BC); 1.36 - 0x03 ;; INC BC; 1.37 1.38 1.39 - 0xF1 ;; pop A 1.40 - 1.41 - 0x3D ;; dec A 1.42 - 0x20 ;; 1.43 - (->signed-8-bit -8) ;; continue writing block 1.44 - 1.45 0x15 ;; dec D 1.46 0x20 1.47 - (->signed-8-bit -13) ;; continue writing row 1.48 + (->signed-8-bit -6) ;; continue writing row 1.49 1.50 ;; row is complete, advance to next row 1.51 - ;; HL += 192 1.52 + ;; HL += 12 1.53 1.54 0xC5 ;; push BC 1.55 1.56 @@ -514,7 +503,7 @@ 1.57 0 1.58 1.59 0x0E 1.60 - 0 ;; 192 -> C 1.61 + 12 ;; 12 -> C 1.62 1.63 0x09 ;; HL + BC -> HL 1.64 1.65 @@ -522,7 +511,7 @@ 1.66 1.67 0x1D ;; dec E 1.68 0x20 1.69 - (->signed-8-bit -23) ;; contunue writing picture 1.70 + (->signed-8-bit -18) ;; contunue writing picture 1.71 1.72 0xC3 1.73 (reverse