# HG changeset patch # User Robert McIntyre # Date 1331574115 18000 # Node ID 37711ff4a7bc42e5f101393c6a896f8a6ee49d27 # Parent 2090bcb78f44e9478e5cd5bb7dcd408aa08cf266 filled out functions for the rest of the registers. diff -r 2090bcb78f44 -r 37711ff4a7bc clojure/com/aurellem/gb_driver.clj --- a/clojure/com/aurellem/gb_driver.clj Mon Mar 12 12:37:04 2012 -0500 +++ b/clojure/com/aurellem/gb_driver.clj Mon Mar 12 12:41:55 2012 -0500 @@ -179,15 +179,7 @@ (def write-registers! (write-cpu-data Gb/NUM_REGISTERS #(Gb/writeRegisters %))) -;; (defn write-memory! [new-memory] -;; (let [store (int-array new-memory)] -;; (assert (= Gb/GB_MEMORY) (count new-memory)) -;; (Gb/writeMemory new-memory))) - - -;; TODO add register names - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;; Registers ;;;;;;;;;;;;;;;;;;;;;;;;;;; (defmacro gen-get-set-register [name index] (let [name-bang (symbol (str name "!"))] @@ -210,9 +202,8 @@ (update-state))) ([new-register#] (~name-bang @current-state new-register#)))))) - - +;; 16 bit registers (gen-get-set-register PC 0) (gen-get-set-register SP 1) (gen-get-set-register AF 2) @@ -221,8 +212,28 @@ (gen-get-set-register HL 5) (gen-get-set-register IFF 6) - - +;; 8 bit registers +(gen-get-set-register DIV 7) +(gen-get-set-register TIMA 8) +(gen-get-set-register TMA 9) +(gen-get-set-register IF 11) +(gen-get-set-register LCDC 12) +(gen-get-set-register STAT 13) +(gen-get-set-register SCY 14) +(gen-get-set-register SCX 15) +(gen-get-set-register LY 16) +(gen-get-set-register DMA 18) +(gen-get-set-register WY 19) +(gen-get-set-register WX 20) +(gen-get-set-register VBK 21) +(gen-get-set-register HDMA1 22) +(gen-get-set-register HDMA2 23) +(gen-get-set-register HDMA3 24) +(gen-get-set-register HDMA4 25) +(gen-get-set-register HDMA5 26) +(gen-get-set-register SVBK 27) +(gen-get-set-register IE 28) + ;;;;;;;;;;;;;;; (defmacro defn-memo