# Runtime Compatible > [HTML Version](runtimecompatible.htm) 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. 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()](sizeof().htm.md) | | 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 | \++INCLUD nested 13 levels deep | | DO / WHILE ... UNTIL / LOOP | \++PRAGMA (all) | | BABIC_plus_-style FOR/NEXT
semantics (test before loop) | 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 += , 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](a-shellextensions.htm.md) for more information on all of the above statements and features.