anchor.diff:  	       (setf new-code (append new-code (list (append (nbutlast i) (list (- code-offset offset)))))))))
   	   (setf new-code (append new-code (list i)))))
       (values new-code)))
  -    
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;; Implementing the mips (r5900 assembler here)
  
positive.code:     (loop for i in (nthcdr 3 code) do 
         ; ok, this might not be the best approach but should be fine. If instruction wasn't found we assume that it's a label
         (if (gethash (car i) *mips-instructions*)
  	  (setf offset (+ 4 offset))
  	  (progn
  	    (when (gethash (car i) label-table)
  	      (error (format nil "Label ~a found more than once in ~a" (car i) (car code))))
  	      (setf (gethash (car i) label-table) offset))))
      (setf offset 0)
      ; append the function def
      (setf new-code (append new-code (list (nth 0 code))))
      (setf new-code (append new-code (list (nth 1 code))))
      (setf new-code (append new-code (list (nth 2 code))))
      (loop for i in (nthcdr 3 code) do
         ; ths may actually back fire later because we are looking for branch instructions in the func declaration as well
         (unless (gethash (car i) label-table)
  	 (setf offset (+ 4 offset))
  	  ; lets see if instruction is a branch
           (if (find (car i) '(beq beql bne bnel bgtz bgtzl blez blezl))
  	   (progn
  
negative.code: ;;; This function will parse a whole score file to lists to be processed  
  ;;; We might want to track line/similar things for better error reporting later
  
  (defparameter *mips-instructions* (make-hash-table :test #'eq))
  
  (defun read-score-file (filename)
    (with-open-file (stream filename)
  