CMNT This is a patch instruction for 'Misc/Ordinal to value' CMNT Input: É ¥ base/arg/É CMNT Output: É ¥ rslt/É CMNT This patch assumes the ROM12 data formats PRIM Stack/Over É ¥ arg/base/arg/É PRIM Ordinal/Compare É ¥ arg<=base?/base/arg/É BRFL branch if arg > base (saturate, return 1.0) PRIM Stack/Drop É ¥ arg/É PRIM Stack/Drop É ¥ É LVAL 1 É ¥ 1.0/É BRTR LITO 32768 É ¥ 32768/base/arg/É PRIM Ordinal/Compare É ¥ base>=32768?/base/arg/É BRFL branch if base<32767 (just divide) PRIM Value/Divide É ¥ rslt/É BRTR CMNT base>=32768 and arg>base, so divide both by 2 so not negative PRIM Ordinal/Right É ¥ baseÖ2/arg/É PRIM Stack/Swap É ¥ arg/baseÖ2/É PRIM Ordinal/Right É ¥ argÖ2/baseÖ2/É PRIM Value/Fraction É ¥ rslt/É