The Run Compatible (RC) switch enables the use of several compiler and source code enhancements without breaking backwards Runtime Compatibility with AMOS. To be effective, you must use with COMPIL.LIT / OCMPIL.LIT 1.0(117)+ (not COMPLP) and without any of the /X:# switches. The idea is to accommodate people who want to compile under A-Shell and use as many A-Shell features as possible, but still retain the option of copying the RUN files to AMOS for execution there. RC was added to A-Shell in Build 924 of 29 March 2005.
The features which /RC adds to COMPIL or OCMPIL can be divided into fully and partially supported categories, as shown below.
Fully Supported:
DEFINE |
SIZEOF(var) |
DEFSTRUCT / ENDSTRUCT |
Use of underline in identifiers |
Hex, Octal, ASCII Literal Values (&h10FC, &o1777, 'a') |
Max source line length of 3070 instead of 512 |
IF / ELSE / ELSEIF / ENDIF |
++INCLUDE nested 13 levels deep |
DO / WHILE ... UNTIL / LOOP |
++PRAGMA (all) |
BABICplus-style FOR/NEXT |
Comment may follow an & on a continuation line |
EXIT / REPEAT |
++ERROR, ++MESSAGE |
SWITCH / ENDSWITCH |
Conditional compilation (++IF, ++IFDEF, ++IFNDEF, ++IFMAP, ++IFNMAP, ++ELSE, ++ELIF, ++ENDIF) |
Shortcut Operators (var += <expr>, etc.) |
|
Partially Supported:
3D TAB(x,y,z): z value ignored |
DPRINT / EPRINT / TPRINT: compiled as if PRINT |
TRACE.xxxx / DEBUG.xxxx: compiled as XCALL EVTWIN |
DIMX: compilation only, and only if OPTIONS=RC_DIMX. |
See the discussion on A-Shell Extensions for more information on all of the above statements and features.