anchor.diff:  (def-nxt-command get-firmware-version #x01 #x88)
   (def-nxt-command get-device-info      #x01 #x9b)
   (def-nxt-command find-first           #x01 #x86 file-name (string 2 21))
  -(def-nxt-command find-next            #x01 #x87 handle    (byte 2))
  -(def-nxt-command nxt-close                #x01 #x84 handle     (byte 2))
  -
  -
  -;; (def-nxt-command get-input-values     #x00 #x07 port       (byte 2))
  -;; (def-nxt-command get-output-state     #x00 #x06 port       (byte 2))
  +(def-nxt-command find-next            #x01 #x87 handle    (ubyte 2))
  +(def-nxt-command nxt-close                #x01 #x84 handle     (ubyte 2))
  +
  +
  +;; (def-nxt-command get-input-values     #x00 #x07 port       (ubyte 2))
  +;; (def-nxt-command get-output-state     #x00 #x06 port       (ubyte 2))
   ;; (def-nxt-command get-battery-level    #x00 #x0b)
   ;; (def-nxt-command stop-sound-playback  #x00 #x0c)
  -;; (def-nxt-command set-input-mode       #x00 #x05 port       (byte 2) 
  -;; 		 sensor-type          (byte 3)  sensor-mode (byte 4))
  +;; (def-nxt-command set-input-mode       #x00 #x05 port       (ubyte 2) 
  +;; 		 sensor-type          (ubyte 3)  sensor-mode (ubyte 4))
   ;; (def-nxt-command message-read         #x00 #x13 
  -;; 		 remote-inbox         (byte 2)  local-inbox (byte 3) remove (byte 4))
  +;; 		 remote-inbox         (ubyte 2)  local-inbox (ubyte 3) remove (ubyte 4))
   
   ;; (def-nxt-command get-device-info      #x01 #x9b)
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;; HELPER FUNCTIONS TO BUILD THE COMMAND
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  -(defun write-byte-to-command (vector value location)
  +(defun write-ubyte-to-command (vector value location)
     (assert (arrayp vector) (vector) "First argument should be a vector!")
     (setf (aref vector location) value))
   
  -(defun read-byte-from-reply (vector location)
  +(defun read-ubyte-from-reply (vector location)
     (assert (arrayp vector) (vector) "First argument should be a vector!")
     (aref vector location))
   
  
positive.code: ;
  ;; Specification:
  ;;
  ;;     (byte position)   - byte = 8bits
  ;;     (uword position)  - uword = 16bits, Little endian
  ;;     (string position end-position) - string is 0 terminated put in the buffer.
  ;;     (ulong position)  - ulong = 32bits, Little endian
  ;;     (data position)   - This should be the last field and the length determines how
  ;;                         long the command is, or when it is a reply, the
  ;;                         length of the reply determins the length of the data
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;; FUNCTIONS THAT HELP DESTRUCTURING THE SPECIFICATION OF THE COMMANDS
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  (defun type-of-spec (spec)
    "Returns the type of a single variable spec for the nxt command description.
  Returns one of: 'byte, 'uword, 'string."
    (first spec))
  
  (defun last-byte-of-spec (spec)
  
negative.code:    (list (list 'code (list 'eql code))
  	 (list 'data 'vector))
     (cons 'list
      (loop :for  (key spec) :on (append (list 'status '(ubyte 2))  rest) :by #'cddr :collect
         (list 'cons `(quote ,key)
  	     (case (type-of-spec spec)
  	       (ubyte `(read-ubyte-from-reply data ,(second spec)))
  	       (string `(read-string-from-reply data ,(second spec) ,(third spec)))
  	       (uword `(read-uword-from-reply data ,(second spec)))
  	       (ulong `(read-ulong-from-reply data ,(second spec)))
  