Supported RPG Features

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.