anchor.diff:        (do ()
             ((not (logbitp +serial-lsr-data-available+
                            (sys.int::io-port/8 (+ *debug-serial-io-port* +serial-LSR+)))))
  -        (debug-fifo-push (sys.int::io-port/8 (+ *debug-serial-io-port* +serial-RBR+))
  -                         *debug-serial-rx-buffer*
  -                         +debug-serial-buffer-size+
  -                         *debug-serial-rx-buffer-head*
  -                         *debug-serial-rx-buffer-tail*))
  +        (fifo-push (sys.int::io-port/8 (+ *debug-serial-io-port* +serial-RBR+))
  +                   *debug-serial-rx-fifo*
  +                   nil))
         ;; Refill the TX FIFO when it becomes empty.
         (when (logbitp +serial-lsr-thr-empty+
                        (sys.int::io-port/8 (+ *debug-serial-io-port* +serial-LSR+)))
  
positive.code: (defvar *debug-serial-tx-buffer*)
  (defvar *debug-serial-tx-buffer-head*)
  (defvar *debug-serial-tx-buffer-tail*)
  (defvar *debug-serial-rx-buffer*)
  (defvar *debug-serial-rx-buffer-head*)
  (defvar *debug-serial-rx-buffer-tail*)
  (defvar *debug-serial-lock*)
  (defvar *serial-at-line-start*)
  
  
negative.code:        (sys.int::%stihlt)
         (sys.int::%cli))))
  
  (defun debug-serial-read-byte (&optional (waitp t))
    (fifo-pop *debug-serial-rx-fifo* waitp))
  
  ;; High-level character functions. These assume that whatever is on the other
  ;; end of the port uses UTF-8 with CRLF newlines.
  