100 cls 110 roman$ = "MCMXCIX" : print roman$,"=> "; : gosub 170 : print decimal '1999 120 roman$ = "XXV" : print roman$,"=> "; : gosub 170 : print decimal '25 130 roman$ = "CMLIV" : print roman$,"=> "; : gosub 170 : print decimal '954 140 roman$ = "MMXI" : print roman$,"=> "; : gosub 170 : print decimal '2011 150 end 160 rem Decode from roman 170 decimal = 0 180 predecimal = 0 190 for i = len(roman$) to 1 step -1 200 x$ = mid$(roman$,i,1) 210 select case x$ 220 case "M" : n = 1000 230 case "D" : n = 500 240 case "C" : n = 100 250 case "L" : n = 50 260 case "X" : n = 10 270 case "V" : n = 5 280 case "I" : n = 1 290 case else : print "not a roman numeral" : end 300 end select 310 if n < predecimal then decimal = decimal-n else decimal = decimal+n 320 predecimal = n 330 next i 340 return