anchor.diff:  
   (defparameter *ram* (make-array (* 64 1024) :initial-element 0 :element-type '(unsigned-byte 8)) "Primary segment")
   (defparameter *stack* (make-array (* 64 1024) :initial-element 0 :element-type '(unsigned-byte 8)) "Stack segment")
  -(defparameter *flags* '(:cf 0 :sf 0 :zf 0) "Flags")
  +(defparameter *flags* '(:cf 0 :of 0 :sf 0 :zf 0) "Flags")
   (defparameter *registers* '(:ax 0 :bx 0 :cx 0 :dx 0 :bp 0 :sp #x100 :si 0 :di 0) "Registers")
   (defparameter *ip* 0 "Instruction pointer")
   (defparameter *has-carried* nil "Whether the last wraparound changed the value")
  
positive.code: 
  (defmacro inc (op1 is-word)
    `(disasm-instr (list "inc" :op1 ,op1)
       (set-sf-on-op (set-zf-on-op (incf ,op1)) ,is-word)))
  
  (defmacro dec (op1 is-word)
    `(disasm-instr (list "dec" :op1 ,op1)
       (set-sf-on-op (set-zf-on-op (decf ,op1)) ,is-word)))
  
  ;; Group handling
  
  
negative.code:     ((= opcode #xf8) (clear-carry-flag))
      ((= opcode #xf9) (set-carry-flag))
      ((= opcode #xeb) (jmp-short))
      ((in-paired-byte-block-p opcode #x70) (jmp-short-conditionally opcode (flag-p :of) "o"))
      ((in-paired-byte-block-p opcode #x72) (jmp-short-conditionally opcode (flag-p :cf) "b"))
      ((in-paired-byte-block-p opcode #x74) (jmp-short-conditionally opcode (flag-p :zf) "z"))
      ((in-paired-byte-block-p opcode #x76) (jmp-short-conditionally opcode (or (flag-p :cf) (flag-p :zf)) "be"))
      ((in-paired-byte-block-p opcode #x78) (jmp-short-conditionally opcode (flag-p :sf) "s"))
      ((in-paired-byte-block-p opcode #x7c) (jmp-short-conditionally opcode (not (eq (flag-p :of) (flag-p :sf))) "l"))
      ((in-paired-byte-block-p opcode #x7e) (jmp-short-conditionally opcode (or (flag-p :zf) (not (eq (flag-p :of) (flag-p :sf)))) "le"))
      ((= opcode #xe8) (call-near))
      ((= opcode #xc3) (ret-from-call))
      ((in-6-byte-block-p opcode #x00) (parse-alu-opcode opcode add-without-carry))
  