anchor.diff:    (write-vbe-reg +vbe-dispi-index-id+ +vbe-dispi-id5+)
     (let ((id (read-vbe-reg +vbe-dispi-index-id+)))
       (when (= (logand id #xfff0) #xb0c0)
  -      (format t "Bochs VBE adaptor present. Version ~S~%" (logand id #xf))
  -      (when (>= id +vbe-dispi-id3+)
  -	(write-vbe-reg +vbe-dispi-index-enable+ +vbe-dispi-getcaps+)
  -	(format t " Maximum resolution: ~Sx~Sx~S~%"
  -		(read-vbe-reg +vbe-dispi-index-xres+)
  -		(read-vbe-reg +vbe-dispi-index-yres+)
  -		(read-vbe-reg +vbe-dispi-index-bpp+)))
  +      (setf *bochs-vbe-version* (logand id #xF))
  +      (format t "Bochs VBE adaptor present. Version ~S~%" *bochs-vbe-version*)
  +      (when (< id +vbe-dispi-id2+)
  +        (format t " Adapter too old, doesn't support LFB.~%")
  +        (setf *bochs-vbe-version* nil)
  +        (return-from probe-bochs-vbe))
  +      (cond ((>= id +vbe-dispi-id3+)
  +             (write-vbe-reg +vbe-dispi-index-enable+ +vbe-dispi-getcaps+)
  +             (setf *bochs-max-x-res* (read-vbe-reg +vbe-dispi-index-xres+)
  +                   *bochs-max-y-res* (read-vbe-reg +vbe-dispi-index-yres+))
  +             (format t " Maximum resolution: ~Sx~Sx~S~%"
  +                     *bochs-max-x-res*
  +                     *bochs-max-y-res*
  +                     (read-vbe-reg +vbe-dispi-index-bpp+)))
  +            (t ;; Not specified, guess.
  +             (setf *bochs-max-x-res* 1024
  +                   *bochs-max-y-res* 768)))
  +      (cond ((>= id +vbe-dispi-id5+)
  +             (setf *bochs-vram-size* (* (read-vbe-reg +vbe-dispi-index-video-memory+) 64 1024)))
  +            ((>= id +vbe-dispi-id4+)
  +             (setf *bochs-vram-size* (* 8 1024 1024)))
  +            ;; I have no idea what this should really be.
  +            (t (setf *bochs-vram-size* (* 4 1024 1024))))
  +      (format t " ~DMB of display memory available.~%"
  +              (/ *bochs-vram-size* 1024 1024))
         (let ((framebuffer (pci-get-lfb-addr #x1234 #x1111)))
   	(if framebuffer
  -	  (setf *bochs-vbe-framebuffer-address* framebuffer)
  -	  (setf *bochs-vbe-framebuffer-address* +vbe-dispi-lfb-physical-address+)))
  +            (setf *bochs-vbe-framebuffer-address* framebuffer)
  +            (setf *bochs-vbe-framebuffer-address* +vbe-dispi-lfb-physical-address+)))
         (format t " Framebuffer at #x~X~%" *bochs-vbe-framebuffer-address*)
         t)))
   
  
positive.code: 	(when (not (eql (logand data #xFFF1) 0))
  	  (return nil))
  	(return (logand data #xFFFF0000))))))
  
  (defvar *bochs-framebuffer* nil)
  
  (defun set-gc-light ()
    (when (and (boundp '*bochs-framebuffer*)
  
negative.code: (defconstant +vbe-dispi-ioport-index+          #x01CE)
  (defconstant +vbe-dispi-ioport-data+           #x01CF)
  
  (defconstant +vbe-dispi-index-id+              0) ; id0
  (defconstant +vbe-dispi-index-xres+            1) ; id0
  (defconstant +vbe-dispi-index-yres+            2) ; id0
  (defconstant +vbe-dispi-index-bpp+             3) ; id0
  (defconstant +vbe-dispi-index-enable+          4) ; id0
  (defconstant +vbe-dispi-index-bank+            5) ; id0
  (defconstant +vbe-dispi-index-virt-width+      6) ; id1
  (defconstant +vbe-dispi-index-virt-height+     7) ; id1
  (defconstant +vbe-dispi-index-x-offset+        8) ; id1
  (defconstant +vbe-dispi-index-y-offset+        9) ; id1
  (defconstant +vbe-dispi-index-video-memory+    10) ; id5
  
  (defconstant +vbe-dispi-id0+                   #xB0C0)
  (defconstant +vbe-dispi-id1+                   #xB0C1)
  