anchor.diff:        ;; setup char length
         (set-flag (unistd:cflag termios)
   		:off ("CSIZE"))
  -
  +      
         (case (bytesize s)
   	(8 (set-flag (unistd:cflag termios) :on ("CS8")))
   	(7 (set-flag (unistd:cflag termios) :on ("CS7")))
   	(6 (set-flag (unistd:cflag termios) :on ("CS6")))
   	(5 (set-flag (unistd:cflag termios) :on ("CS5")))
   	(t (error 'value-error :text (format nil "Invalid char len: ~A" (bytesize s)))))
  -
  +      
         ;; setup stopbits
         
         (case (stopbits s)
  
positive.code: 
  (defmethod configure-port ((s <serial-posix>))
    (let ((termios (unistd:tcgetattr (get-fd s)))
  	(vtime (and (inter-char-timeout s) (floor (* 10 (inter-char-timeout s))))))
      (macrolet ((set-flag (flag &key (on ()) (off ()))
  		 `(setf ,flag 
  			(logior ,@(mapcar (curry-right 'find-symbol :unistd) on) 
  
negative.code: 		   (let ((on (reduce #'fn on :initial-value nil))
  			 (off (reduce #'fn off :initial-value nil)))
  		     `(setf ,flag (logior ,@on (logand ,flag (lognot (logior ,@off)))))))))
  
        ;; setup raw mode/ no echo/ binary	
        (set-flag (unistd:cflag termios)
  		:on ("CLOCAL" "CREAD"))
        (set-flag (unistd:lflag termios)
  		:off ("ICANON" "ECHO" "ECHOE" "ECHOK" "ECHONL" "ISIG" "IEXTEN"))
        
        (set-flag (unistd:oflag termios)
  		:off ("OPOST"))
  