anchor.diff:  
   (defmacro inc (op1 is-word)
     `(disasm-instr (list "inc" :op1 ,op1)
  -     (set-of-on-op (set-sf-on-op (set-zf-on-op (incf ,op1)) ,is-word) 1 ,is-word)))
  +     (set-of-on-op (set-pf-on-op (set-sf-on-op (set-zf-on-op (incf ,op1)) ,is-word)) 1 ,is-word)))
   
   (defmacro dec (op1 is-word)
     `(disasm-instr (list "dec" :op1 ,op1)
  -     (set-of-on-op (set-sf-on-op (set-zf-on-op (decf ,op1)) ,is-word) -1 ,is-word))
  +     (set-of-on-op (set-pf-on-op (set-sf-on-op (set-zf-on-op (decf ,op1)) ,is-word)) -1 ,is-word)))
   
   ;; Group handling
   
  
positive.code:     ((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))
  
negative.code: 
  (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 :of 0 :pf 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")
  