--- /dev/null
+REM Sapphire options macro library -- © 1995 Straylight
+
+DEF FNoptions_test=0
+
+DEF FNoption(o%,t%,n$)
+IF FNalign
+opt__l=opt__l
+IF opt__l THEN !(opt__l+O%-P%+4)=P%-opt__l
+[ opt 4
+.opt__l
+ dcd 0
+ dcd 0
+ dcd o%
+ dcd t%
+ equs n$+CHR$(0)
+ FNalign
+]
+=0
+
+DEF FNopt__f(f%)
+!(opt__l+O%-P%)=!(opt__l+O%-P%) OR f%
+=0
+
+DEF FNoptions_end
+[ opt 4
+ FNopt__f(optFlag_last)
+ FNalign
+]
+!(opt__l+O%-P%+4)=P%-opt__l
+=0
+
+DEF FNoptions_string(o%,n$,s%)
+[ opt 4
+ FNoption(o%,optType_string,n$)
+ dcd s%
+]
+=0
+
+DEF FNoptions_integer(o%,n$,b%)
+IF FNoption(o%,optType_integer,n$)
+IF b% THEN [opt 4:dcd b%:]
+=0
+
+DEF FNoptions_literal
+IF FNoption(0,optType_literal,"")
+IF FNopt__f(optFlag_ignore)
+=0
+
+DEF FNoptions_enum(o%,n$)=FNoption(o%,optType_enum,n$)
+
+DEF FNoptions_bool(o%,n$,f%)
+[ opt 4
+ FNoption(o%,optType_bool,n$)
+ dcd f%
+]
+=0
+
+DEF FNoptions_version(o%,n$)=FNoption(o%,optType_version,n$)