After the copy, I stored my jump values (and some other values) in the single-digit memory locations so that jumping would be super easy. If a jump value needed to change, no problem, just change the hard-coded value that gets stored in memory during init.
I also stored the subroutine locations of each input handler in the location corresponding to that inputs ordinal value to make input handling really easy. My input iterator was stored in memory 0, so in order to handle the next input, all I had do was 0<<<c (unless it was a digit).
My solution (250 characters):
Code: Select all
96*1+g 1^2?1g$1v1-3*g+7g-4g*1g/3<g 0$7c1vd$7c10$7c20$30$40$ 96*0^00^<73*?0^<2^>1v1+1v1+093*-g dd0> 55+1> 86*2> 039*-3> 696*-4> 86*1-5> 95*85*1^9-1^>1^7-1^1+>1^1- 1^3+>1^4+1^5+>1^9+1^2+>1^93++1^7+> dd00 0<<2?4g7cp!0<<5<:1-8?0<<<c1<g1<*0<<2<-+0<1+0>4<g