             (str "The value " val " is not an acceptable value for pins of type " (current-pin-mode board pin-n)))
     (swap! pin-state pin-n val)))
 
+;; Now we'll flesh out some of the various reading/writing functions
 
 (defmethod read-pin* :input
   [board pin-n]

                   (< (Math/pow 2 (get-bits board pin-n)))))
    false))

(defn sim-board
  [config]
  (SimBoard.

              (fn [_] (> (rand) 0.68))
              available-modes)]))})


;; And register the implementation

(def implementation
  (reify
    Object
