# HG changeset patch # User Robert McIntyre # Date 1346490932 18000 # Node ID 15876b1a0906d07ca45a845b59f875cace4f7b1e # Parent be6f46094ad0018f88e6de0b271f5a453773c84b glyph display works partially, but does not write all glyphs. diff -r be6f46094ad0 -r 15876b1a0906 clojure/com/aurellem/run/adv_choreo.clj --- a/clojure/com/aurellem/run/adv_choreo.clj Sat Sep 01 04:05:51 2012 -0500 +++ b/clojure/com/aurellem/run/adv_choreo.clj Sat Sep 01 04:15:32 2012 -0500 @@ -43,8 +43,8 @@ (display-image-kernel base-address - ;;pinkie-pie-mark - test-image-color + pinkie-pie-mark + ;;test-image-color ) @@ -75,8 +75,8 @@ (concat image-program ;; image program falls through to music program - (infinite-loop) - ;;music-program + ;;(infinite-loop) + music-program ))) @@ -179,8 +179,7 @@ (let [init* (flatten - [0xF1 ;; pop A, now A is equal to key input - ;; BC is current number of glyphs rendered. + [;; BC is current number of glyphs rendered. ;; each glyph is two characters, and the screen can hold up ;; to 360 characters. Thus, if the current glyphs is a ;; multiple of 180, the screen must be refreshed. @@ -272,12 +271,21 @@ 0xC1 0xD1 ;; pop C B E D ] - - - render-glyph (flatten [set-HL-from-row-and-column + 0xF1 ;; pop A, now A is equal to key input + 0xF5 ;; save A + + 0xE6 0xF0 ;; clear second nybble + 0xCB 0x37 ;; swap nybbles + 0x22 ;; store A in video as a character (pun) + + 0xF1 ;; restore A + 0xE6 0x0F ;; select second nybble + 0x22 ;; store second nybble as glyph + + increment-row-column increment-row-column ;; Render each nybble of A as a character ;; there are two characters to a glyph.