Here's my beast of a code. I went about it a bit differently (resulting in more strokes). I parsed the string into two matching arrays, one with the actual characters and one with the values of those characters. This allowed to cross reference and still be able to tell if a value came from a strike or spare. Nothing to complicated. Could have declared a multi dimen array instead of two and saved some strokes probably, but I kind of ran out of time to work on it. This week is finals week in school, so I probably shouldnt have worked on it at all...but priorities, ya know.
 Code:
function a($z)
   Dim $o,$j,$,$l,$v[22],$d[22]
   $o=split($z," ")
   $j=join($o,"")
   for $=1 to 22
      $l=substr($j,$,1)
      $d[$]=$l
      $v[$]=iif($l=X,10,iif($l="/",10-$v[$-1],cint($l)))
      $a=$a+$v[$]
   next
   for $=1 to len($j)-len($o[9])
      if $d[$]="/"
         $a=$a+$v[$+1]
      else
         if $d[$]=X
            $a=$a+$v[$+1]+$v[$+2]
;         endif
;      endif
;   next
endfunction