string 0; \use zero-terminated strings code CrLf=9, IntOut=11; func Roman(Str); \Convert Roman numeral string to decimal value char Str; int I, Val, Val0, Sum; [I:= 0; Sum:= 0; Val0:= 5000; loop [case Str(I) of ^M: Val:= 1000; ^D: Val:= 500; ^C: Val:= 100; ^L: Val:= 50; ^X: Val:= 10; ^V: Val:= 5; ^I: Val:= 1 other return Sum; \zero string terminator I:= I+1; Sum:= Sum + Val; if Val > Val0 then Sum:= Sum - 2*Val0; Val0:= Val; ]; ]; [IntOut(0, Roman("MCMXC")); CrLf(0); IntOut(0, Roman("MMVIII")); CrLf(0); IntOut(0, Roman("MDCLXVI")); CrLf(0); ]