| Feature Area | Status | Details |
|---|---|---|
| Source Formats | Supported | Free-format (**FREE), fixed-format (H/D/F/C/P/I/O-specs), RPG II/III, mixed-format |
| Opcodes (Computation) | Supported | EVAL, IF/ELSE/ENDIF, DOW/DOU/FOR, SELECT/WHEN/OTHER, EXSR/BEGSR, CALLP, CALL, RETURN, MONITOR/ON-ERROR, CHAIN/READ/READP/READE/READPE/WRITE/UPDATE/DELETE/SETLL/SETGT/OPEN/CLOSE, EXFMT/READ/WRITE (WORKSTN), ADD/SUB/MULT/DIV/SQRT/Z-ADD/Z-SUB/MVR, MOVE/MOVEL/MOVEA, COMP/CABxx/CASxx/DOUxx/DOWxx/IFxx/WHENxx, GOTO/TAG, LOOKUP/SCAN/CHECK/CHECKR/SUBST/CAT/XLATE, ADDDUR/SUBDUR/EXTRCT/TEST/TIME, CLEAR/RESET, OCCUR/ALLOC/REALLOC/DEALLOC, SORTA, IN/OUT/UNLOCK (data areas), COMMIT/ROLBK, DUMP, DSPLY, SETON/SETOFF, FORCE |
| Opcodes (Declaration) | Supported | DCL-S, DCL-DS, DCL-C, DCL-F, DCL-PR/DCL-PI, DCL-PROC, DCL-ENUM, CTL-OPT, fixed-format D/F/H/P-specs |
| Built-In Functions | Supported | %ABS, %ADDR, %CHAR, %CHECK/%CHECKR, %DATE/%TIME/%TIMESTAMP, %DEC/%DECH/%INT/%INTH/%UNS/%UNSH/%FLOAT, %DIFF, %DIV/%REM, %EDITC/%EDITW/%EDITFLT, %ELEM/%LEN/%SIZE/%DECPOS/%MAXARR/%MINARR, %EOF/%FOUND/%EQUAL/%OPEN/%STATUS/%ERROR, %KDS, %LIST, %LOOKUP/%LOOKUPLT/%LOOKUPLE/%LOOKUPGT/%LOOKUPGE, %NULLIND, %OCCUR, %PADDR, %REPLACE/%SCAN/%SCANR/%SCANRPL/%SUBST/%TRIM/%TRIML/%TRIMR, %XLATE, %FIELDS, %HANDLER, %STR, %ALLOC/%REALLOC, %SUBARR/%RANGE, %LOWER/%UPPER, %SPLIT/%CONCATARR, %PROC, %PARMS/%PARMNUM/%PASSED/%OMITTED, %BITAND/%BITOR/%BITNOT, %MAX, %MIN, %TLOOKUP, %CONCAT, %THIS, %CHARCOUNT, %LEFT, %RIGHT, %SUBDT, %DAYS, %GRAPH, %UCS2, %HIVAL, %LOVAL, %BITXOR, %SQRT, %XFOOT, %HOURS, %MINUTES, %SECONDS, %MSECONDS, %MONTHS, %YEARS, %SHTDN, %LOOKUPNE, %TLOOKUPGT, %TLOOKUPGE, %TLOOKUPLT, %TLOOKUPLE, %TLOOKUPNE |
| Data Types | Supported | Packed, Zoned, Character (fixed + varying), Integer, Unsigned, Float, Indicator, Date, Time, Timestamp, Binary decimal, Graphic, Object |
| Data Structures | Supported | Standalone, qualified, LIKEDS, LIKEREC, EXTNAME, EXT, ALIAS, ALIGN, nested, BASED, OVERLAY, DIM, OCCURS, program status (PSDS), file information (INFDS) |
| Procedures | Supported | Subprocedures, exported procedures, prototypes, OPTIONS(*NOPASS/*OMIT/*VARSIZE/*STRING/*NULLIND/*EXACT/*TRIM/*RIGHTADJ/*CONVERT), OVERLOAD, forward references |
| File I/O | Supported | Externally-described DISK, program-described DISK, WORKSTN (display), PRINTER, keyed access, subfiles, /COPY, Open Access |
| Embedded SQL | Supported | EXEC SQL, host variables, cursors, stored procedures, multiple backends (Db2 for i, SQL Server, Db2 LUW, H2) |
| Program Cycle | Supported | RPG II/III cycle programs, control breaks (L1 - L9), overflow, matching records |
| XML/Data Processing | Supported | XML-INTO, XML-SAX, DATA-INTO, DATA-GEN |
| CTL-OPT Keywords | Supported | 48 keywords, including DFTACTGRP, ACTGRP, NOMAIN, MAIN, BNDDIR, CURSYM, COPYRIGHT, DATEYY, THREAD, CCSIDCVT, CHARCOUNTTYPES, DECEDIT, DATEDIT, DATFMT, TIMFMT, EXPROPTS, FIXNBR, ALWNULL, TRUNCNBR, FLTDIV, INTPREC, REQPREXP, EXTBININT, FORMSALIGN, COPYNEST, CHARCOUNT, CCSID, OPTION |
| Unsupported | Not supported | Telecom specs, S/38 assembler, DEBUG opcode, non-standard CCSIDs |
The sections below cover each area in detail.