i5/OS Programmer's Toolkit
0.2.16
i5/OS Programmer's Toolkit is a set of tools designed to ease programmers' daily works on an IBM i box(previous known as AS/400, iSeries).
Want to know what we're currently working on, investigating in, or even worried about? This section might help.
All releases can be found here
Subprojects currently avaialble are listed as the following:
Tool programs we are going to develop:
- MI Disassembler for OPM MI Programs
- Subproject "System-builtin Headers for ILE RPG" is renamed to "System-builtin Headers and Examples for ILE HLLs". The subproject is enriched with system-builtin headers for ILE COBOL and usage examples in ILE COBOL and CL of using system-builtins (bound program access interfaces of MI instructions). Also the original system-builtin headers for ILE RPG, mih52.rpgleinc, and mih54.rpgleinc are divided into small ones by category. Please refere to System-builtin Headers and Examples for ILE HLLs for details. The page List of System-builtins lists all system-builtins currently covered by this subproject.
- CL command Display Panel (DSPPNL) is added to UIM Related Tools
- The CVTHC Program is added to Miscellaneous Tools which is handy for an OPM or ILE HLL program to convert a hexadecimal value to character format.
- New techtips and how-tos added to subproject Space Object Tools
- Binary components (save files) in directory bin of the release packaged changed:
- SAVF bin/emi.savf is removed
- SAVF bin/rpg.savf is removed
- SAVF bin/ifs.savf is added. IFS directories saved in it are:
- /usr/local/include/cobol
- /usr/local/include/emi
- /usr/local/include/rpg
- /usr/local/bin/i5toolkit
New components and utilities provided by this release include:
Improvement to System-builtin Headers for ILE RPG in release 0.2.15
By now, most system-builtins (bound-program access interfaces of IBM i MI instructions) have been prototyped and tested by this subproject. Number of system-builtins prototyped in mih52.rpgleinc and mih54.rpgleinc reached 190 in this release. And there are now more than one hundred test programs written for them, which are also useful usage documentation of these system-builtins.
In this release, the following system built-ins were added to mih52.rpgleinc and mih54.rpgleinc:
- _RETTHCNT (Retrieve Thread Count)
- _TSTINLTH (Test Initial Thread)
- _TESTINTR (Test Pending Interrupts)
- _MATPRATR1 (Materialize Process Attributes)
- _MATPRATR2 (Materialize Process Attributes)
- _CMPPTRA (Compare Pointer for Object Addressability (CMPPTRA))
- _MATPTRL (Materialize Pointer Locations)
- _RSLVDP1 (Resolve Data Pointer)
- _RSLVDP2 (Resolve Data Pointer)
- _RSLVDP3 (Resolve Data Pointer)
- _RETTSADR (Retrieve Teraspace Address From Space Pointer)
- _CMPSWP1 (Compare and Swap)
- _CMPSWP2 (Compare and Swap)
- _CMPSWP4 (Compare and Swap)
- _CMPSWP8 (Compare and Swap)
- _LOCK (lock Object)
- _UNLOCK (Unlock Object)
- _LOCKSL1 (Lock Space Location)
- _LOCKSL2 (Lock Space Location)
- _UNLOCKSL1 (Unlock Space Location)
- _UNLOCKSL2 (Unlock Space Location)
- _LOCKTSL (Lock Teraspace Storage Location)
- _UNLCKTSL (Unlock Teraspace Storage Location)
- _MATAOL (Materialize Allocated Object Locks)
- _MATPRLK1 (Materialize Process Locks)
- _MATPRLK2 (Materialize Process Locks)
- _MATOBJLK (Materialize Object Locks)
- _MATSELLK (Materialize Materialize Selected Locks)
- _MATPRECL (Materialize Process Record Locks)
- _MATDRECL (Materialize Data Space Record Locks)
- _XFRLOCK (Transfer Object Lock)
- _MATINVS1 (Materialize Invocation Stack)
- _MATINVS2 (Materialize Invocation Stack)
- _MATINV (Materialize Invocation (MATINV))
- _FNDRINVN1 (Find Relative Invocation Number (FNDRINVN))
- _FNDRINVN2 (Find Relative Invocation Number (FNDRINVN))
- _MATPTRIF (Materialize Pointer Information (MATPTRIF))
- _YIELD (Yield (YIELD))
- _MATAU1 (Materialize Authority (MATAU))
- _MATAU2 (Materialize Authority (MATAU))
- _MATAL (Materialize Authority List (MATAL))
- _MODINVAU (Modify Invocation Authority Attributes (MODINVAU))
- _MATUPID (Materialize User Profile Pointers from ID (MATUPID))
- _TESTAU1 (Test Authority (TESTAU))
- _TESTAU2 (Test Authority (TESTAU))
- _TESTEAU3 (Test Extended Authorities (TESTEAU))
- _TESTEAU4 (Test Extended Authorities (TESTEAU))
- _TESTULA (Test User List Authority (TESTULA))
- _ENSOBJ (Ensure Object (ENSOBJ))
- _MATRMD (Materialize Resource Management Data (MATRMD))
- Prototype of system state wrapper of MATCTX, the QusMaterializeContext API
- _TESTPDC (Test Performance Data Collection (TESTPDC))
- _MATS (Materialize Space Attributes (MATS))
- _MODS1 (Modify Space Attributes (MODS))
- _MODS2 (Modify Space Attributes (MODS))
- _RSLVSP4 (Resolve System Pointer (RSLVSP))
By now, about 190 system built-ins along with related instruction template structures have been prototyped by subproject System-builtin Headers for ILE RPG . Here is a list of system built-ins covered by this subproject.
- _CMPSWP1 (Compare and Swap (CMPSW))
- _CMPSWP2 (Compare and Swap (CMPSW))
- _CMPSWP4 (Compare and Swap (CMPSW))
- _CMPSWP8 (Compare and Swap (CMPSW))
- _CPRDATA (Compress Data (CPRDATA))
- _DCPDATA (Decompress Data (DCPDATA))
- _TSTBTS (Test Bit in String (TSTBTS))
- _CLRBTS (Clear Bit in String (CLRBTS))
- _SETBTS (Set Bit in String (SETBTS))
- _CVTEFN (Convert External Form to Numeric Value (CVTEFN))
- _CPYECLAP (Copy Extended Characters Left-Adjusted With Pad (CPYECLAP))
- _LBCPYNV (Copy Numeric Value (CPYNV))
- _LBCPYNVR (Copy Numeric Value (CPYNV))
- _ACOS (Arc Cosine (ACOS))
- _ANDCSTR (And Complemented String (ANDCSTR))
- _ANDCSTR (AND String (ANDSTR))
- _ASIN (Arc Sine (ASIN))
- _ATAN (Arc Tangent (ATAN))
- _ATANH (Arc Tangent Hyperbolic (ATANH))
- _STRLENNULL (Compute Length of Null-Terminated String (STRLENNULL))
- _STRCMPNULL (Compare Null-Terminated Strings (STRCMPNULL))
- _STRNCMPNULL (Compare Null-Terminated Strings Constrained (SRNCMPNULL))
- _CMPTOPAD (Compare To Pad (CMPTOPAD))
- _COMSTR (Complement String (COMSTR))
- _COS (Cosine (COS))
- _COSH (Cosine Hyperbolic (COSH))
- _COT (Cotangent (COT))
- _CPYBYTES (Copy Bytes (CPYBYTES))
- _CPYBO (Copy Bytes Overlapping (CPYBO))
- _STRCPYNULL (Copy Null-Terminated String (STRCPYNULL))
- _STRNCPYNULL (Copy Null-Terminated String Constrained (STRNCPYNULL))
- _STRNCPYNULLPAD (Copy Null-Terminated String Constrained, Null Padded (STRNCPYNULLPAD))
- _EEXP (Exponential Function of E (EEXP))
- _FINDBYTE (Find Byte (FINDBYTE))
- _MEMCHR (Find Character Constrained (MEMCHR))
- _STRCHRNULL (Find Character in Null-Terminated String (STRCHRNULL))
- _LN (Logarithm Base E (Natural Logarithm) (LN))
- _MEMCMP (Memory Compare (MEMCMP))
- _MEMCPY (Memory Copy (MEMCPY))
- _MEMMOVE (Memory Move (MEMMOVE))
- _ORSTR (OR String (ORSTR))
- _POWER (X To The Y Power (POWER))
- _PROPB (Propagate Byte (PROPB))
- _RETCA (Retrieve Computational Attributes (RETCA))
- _SETCA (Set Computational Attributes (SETCA))
- _SCANX (Scan Extended (SCANX))
- _SIN (Sine (SIN))
- _SINH (Sine Hyperbolic (SINH))
- _TAN (Tangent (TAN))
- _TANH (Tangent Hyperbolic (TANH))
- _TESTRPL (Test and Replace Bytes (TESTRPL))
- _TESTSUBSET (Test Subset (TESTSUBSET))
- _XLATEB (Translate Bytes (XLATEB))
- _XLATEB1 (Translate Bytes One Byte at a Time (XLATEB1))
- _XORSTR (XOR (Exclusive Or) String (XORSTR))
- _CDD (Compute Date Duration (CDD))
- _CTD (Compute Time Duration (CTD))
- _CMPPTRA (Compare Pointer for Object Addressability (CMPPTRA))
- _CMPPTRT (Compare Pointer Type (CMPPTRT))
- _CPYBWP (Copy Bytes with Pointers (CPYBWP))
- _MATPTR (Materialize Pointer (MATPTR))
- _MATPTRL (Materialize Pointer Locations (MATPTRL))
- _MATPTRIF (Materialize Pointer Information (MATPTRIF))
- _RSLVDP1 (Resolve Data Pointer (RSLVDP))
- _RSLVDP2 (Resolve Data Pointer (RSLVDP))
- _RSLVDP3 (Resolve Data Pointer (RSLVDP))
- _RSLVSP2 (Resolve System Pointer (RSLVSP))
- _RSLVSP4 (Resolve System Pointer (RSLVSP))
- _TESTPTR (Test Pointer (TESTPTR))
- _SETSPPFP (Set Space Pointer from Pointer (SETSPPFP))
- _SETSPFP (Set System Pointer from Pointer (SETSPFP))
- _SETDP (Set Data Pointer (SETDP))
- _SETDPADR (Set Data Pointer Addressability (SETDPADR))
- _CRTS (Create Space (CRTS))
- _DESS (Destroy Space (DESS))
- _MATS (Materialize Space Attributes (MATS))
- _MODS1 (Modify Space Attributes (MODS))
- _MODS2 (Modify Space Attributes (MODS))
- _MATPGMNM (Materialize Program Name (MATPGMNM))
- _ACTBPGM (Activate Bound Program (ACTBPGM))
- _MATACTEX (Materialize Activation Export (MATACTEX))
- _ACTPG (Activate Program (ACTPG))
- _DEACTPG1 (Deactivate Program (DEACTPG))
- _DEACTPG2 (Deactivate Program (DEACTPG))
- _INVP (Invocation Pointer (INVP))
- _MATAGPAT (Materialize Activation Group Attributes (MATAGPAT))
- _MATACTAT (Materialize Activation Attributes (MATACTAT))
- _MODASA (Modify Automatic Storage Allocation (MODASA))
- _NPMPARMLISTADDR (NPM Procedure Parameter List Address (NPM_PARMLIST_ADDR))
- _MATINVAT2 (Materialize Invocation Attributes (MATINVAT))
- _MATINVAT (Materialize Invocation Attributes (MATINVAT))
- _RINZSTAT (Reinitialize Static Storage (RINZSTAT))
- _RINZSTAT2 (Reinitialize Static Storage (RINZSTAT))
- _OPM_PARM_CNT (OPM Parameter Count (OPM_PARM_CNT))
- _OPM_PARM_ADDR (OPM Parameter Address (OPM_PARM_ADDR))
- _MATINVS1 (Materialize Invocation Stack (MATINVS))
- _MATINVS2 (Materialize Invocation Stack (MATINVS))
- _MATINV (Materialize Invocation (MATINV))
- _FNDRINVN1 (Find Relative Invocation Number (FNDRINVN))
- _FNDRINVN2 (Find Relative Invocation Number (FNDRINVN))
- _ALCHSS (Allocate Activation Group-Based Heap Space Storage (ALCHSS))
- _FREHSS (Free Activation Group-Based Heap Space Storage (FREHSS))
- _CRTHS (Create Activation Group-Based Heap Space (CRTHS))
- _MATHSAT (Materialize Activation Group-Based Heap Space Attributes (MATHSAT))
- _SETHSSMK (Set Activation Group-Based Heap Space Storage Mark (SETHSSMK))
- _FREHSSMK (Free Activation Group-Based Heap Space Storage From Mark (FREHSSMK))
- _DESHS (Destroy Activation Group-Based Heap Space (DESHS))
- _CRTINX (Create Independent Index (CRTINX))
- _DESINX (Destroy Independent Index (DESINX))
- _MATINXAT (Materialize Independent Index Attributes (MATINXAT))
- _INSINXEN (Insert Independent Index Entry (INSINXEN))
- _FNDINXEN (Find Independent Index Entry (FNDINXEN))
- _RMVINXEN1 (Remove Independent Index Entry (RMVINXEN))
- _MODINX (Modify Independent Index (MODINX))
- _ENQ (Enqueue (ENQ))
- _DEQI (Dequeue from a queue object without waiting (DEQ))
- _DEQWAIT (Dequeue from or wait on a queue object (DEQ))
- _LOCK (Lock Object (LOCK))
- _UNLOCK (Unlock Object (UNLOCK))
- _LOCKSL1 (Lock Space Location (LOCKSL))
- _LOCKSL2 (Lock Space Location (LOCKSL))
- _UNLOCKSL1 (Unlock Space Location (UNLOCKSL))
- _UNLOCKSL2 (Unlock Space Location (UNLOCKSL))
- _LOCKTSL (Lock Teraspace Storage Location (LOCKTSL))
- _UNLCKTSL (Unlock Teraspace Storage Location (UNLCKTSL))
- _MATAOL (Materialize Allocated Object Locks (MATAOL))
- _MATOBJLK (Materialize Object Locks (MATOBJLK))
- _MATPRLK1 (Materialize Process Locks (MATPRLK))
- _MATPRLK2 (Materialize Process Locks (MATPRLK))
- _MATSELLK (Materialize Materialize Selected Locks (MATSELLK))
- _MATPRECL (Materialize Process Record Locks (MATPRECL))
- _MATDRECL (Materialize Data Space Record Locks (MATDRECL))
- _XFRLOCK (Transfer Object Lock (XFRLOCK))
- _CRTMTX (Create Pointer-Based Mutex (CRTMTX))
- _DESMTX (Destroy Pointer-Based Mutex (DESMTX))
- _LOCKMTX (Lock Pointer-Based Mutex (LOCKMTX))
- _UNLKMTX (Unlock Pointer-Based Mutex (UNLKMTX))
- _MATMTX (Materialize Mutex (MATMTX))
- _MATCTX1 (Materialize Context (MATCTX))
- _MATCTX2 (Materialize Context (MATCTX)).
- _MATAU1 (Materialize Authority (MATAU))
- _MATAU2 (Materialize Authority (MATAU))
- _MATAL (Materialize Authority List (MATAL))
- MATAUU (Materialize Authorized Users (MATAUU))
- _MODINVAU (Modify Invocation Authority Attributes (MODINVAU))
- _TESTAU1 (Test Authority (TESTAU))
- _TESTAU2 (Test Authority (TESTAU))
- _TESTEAU3 (Test Extended Authorities (TESTEAU))
- _TESTEAU4 (Test Extended Authorities (TESTEAU))
- _MATUPID (Materialize User Profile Pointers from ID (MATUPID))
- _TESTULA (Test User List Authority (TESTULA))
- _PCOPTR (PCO Pointer (PCOPTR))
- _PCOPTR2 (Return PCO Pointer (PCOPTR2))
- _MATPRAGP (Materialize Process Activation Groups (MATPRAGP))
- _MATPRATR1 (Materialize Process Attributes (MATPRATR))
- _MATPRATR2 (Materialize Process Attributes (MATPRATR))
- _RETTHCNT (Retrive Thread Count (RETTHCNT))
- _RETTHID (Retrieve Thread Identifier (RETTHID))
- _TSTINLTH (Test Initial Thread (TSTINLTH))
- _TESTINTR (Test Pending Interrupts (TESTINTR))
- _WAITTIME (Wait On Time (WAITTIME))
- _ENSOBJ (Ensure Object (ENSOBJ))
- _MATRMD (Materialize Resource Management Data (MATRMD))
- _SETACST (Set Access State (SETACST))
- _YIELD (Yield (YIELD))
- _TESTTOBJ (Test Temporary Object (TESTTOBJ))
- _TESTPDC (Test Performance Data Collection (TESTPDC))
- _GENUUID (Generate Universal Unique Identifier (GENUUID))
- _MATMATR (Materialize Machine Attributes (MATMATR))
- _MATTOD (Materialize Machine Data (MATMDATA))
- _MATMDATA (Materialize Machine Data (MATMDATA))
- __setjmp
- __setjmp2
- _SYSEPT
- _QTEMPPTR
- _MPYADD (Multiply-Add (MPYADD))
- _MPYSUB (Multiply-Subtract (MPYSUB))
- _CALLPGMV (Call Program with Variable Length Argument List (CALLPGMV))
- _MATTODAT (Materialize Time of Day Clock Attributes (MATTODAT))
- _ATMCADD4 (Atomic Add (ATMCADD))
- _ATMCADD8 (Atomic Add (ATMCADD))
- _ATMCAND4 (Atomic And (ATMCAND))
- _ATMCAND8 (Atomic And (ATMCAND))
- _ATMCOR4 (Atomic Or (ATMCOR))
- _ATMCOR8 (Atomic Or (ATMCOR))
- _RETTSADR (Retrieve Teraspace Address From Space Pointer (RETTSADR))
- _CHKLKVAL (Check Lock Value (CHKLKVAL))
- _CLRKLVAL (Clear Lock Value (CLRLKVAL))
- _SYNCSTG (Synchronize Shared Storage Accesses (SYNCSTG))
- _MATMIF (Materialize Machine Information (MATMIF))
Latest Changelog of the project.
2010-11-01 junleili-cn <junleili-cn@users.sourceforge.net>
mih52.rpgleinc:
- _TESTPDC (Test Performance Data Collection (TESTPDC)) added.
- _MATS (Materialize Space Attributes (MATS)) added.
- _MODS1 (Modify Space Attributes (MODS)) added.
- _MODS2 (Modify Space Attributes (MODS)) added.
- _RSLVSP4 (Resolve System Pointer (RSLVSP)) added.
2010-09-19 junleili-cn <junleili-cn@users.sourceforge.net>
NEWS: Sub-project Space Tools added.
- CL command Change User Space (CHGUSRSPC) added.
- CL command Display Panel (DSPPNL) added.
2010-09-16 junleili-cn <junleili-cn@users.sourceforge.net>
mih52.rpgleinc:
- Prototype of system state wrapper of MATCTX, the QusMaterializeContext API, added
2010-08-30 junleili-cn <junleili-cn@users.sourceforge.net>
mih52.rpgleinc:
- _ENSOBJ (Ensure Object (ENSOBJ))
- _MATRMD (Materialize Resource Management Data (MATRMD))
2010-08-13 junleili-cn <junleili-cn@users.sourceforge.net>
mih52.rpgleinc:
- _MATTOD (Materialize Machine Data (MATMDATA))
- _MATMDATA (Materialize Machine Data (MATMDATA))
- _MATMIF (Materialize Machine Information (MATMIF))
2010-08-05 junleili-cn <junleili-cn@users.sourceforge.net>
mih52.rpgleinc: The following authority management instructions added:
- _MATAU1 (Materialize Authority (MATAU))
- _MATAU2 (Materialize Authority (MATAU))
- _MATAL (Materialize Authority List (MATAL))
- _MODINVAU (Modify Invocation Authority Attributes (MODINVAU))
- _MATUPID (Materialize User Profile Pointers from ID (MATUPID))
- _TESTAU1 (Test Authority (TESTAU))
- _TESTAU2 (Test Authority (TESTAU))
- _TESTEAU3 (Test Extended Authorities (TESTEAU))
- _TESTEAU4 (Test Extended Authorities (TESTEAU))
- _TESTULA (Test User List Authority (TESTULA))
2010-08-04 junleili-cn <junleili-cn@users.sourceforge.net>
mih52.rpgleinc: The following storage and resource management instructions added:
- _YIELD (Yield (YIELD))
2010-07-27 junleili-cn <junleili-cn@users.sourceforge.net>
mih52.rpgleinc: Prototype of _DEACTPG1 and _DEACTPG2 changed.
mih52.rpgleinc: New example of _RINZSTAT added: t072.rpgle, t072b.c.
mih52.rpgleinc: The following program execution instructions added:
- _MATINVS1 (Materialize Invocation Stack)
- _MATINVS2 (Materialize Invocation Stack)
- _MATINV (Materialize Invocation (MATINV))
- _FNDINVN1 (Find Relative Invocation Number (FNDRINVN))
- _FNDINVN2 (Find Relative Invocation Number (FNDRINVN))
mih52.rpgleinc: Pointer/name resolution instruction MATPTRIF added:
- _MATPTRIF (Materialize Pointer Information (MATPTRIF))
2010-07-19 junleili-cn <junleili-cn@users.sourceforge.net>
mih52.rpgleinc: Object Lock Managment Instructions added:
- _LOCK (lock Object)
- _UNLOCK (Unlock Object)
- _LOCKSL1 (Lock Space Location)
- _LOCKSL2 (Lock Space Location)
- _UNLOCKSL1 (Unlock Space Location)
- _UNLOCKSL2 (Unlock Space Location)
- _LOCKTSL (Lock Teraspace Storage Location)
- _UNLCKTSL (Unlock Teraspace Storage Location)
- _MATAOL (Materialize Allocated Object Locks)
- _MATPRLK1 (Materialize Process Locks)
- _MATPRLK2 (Materialize Process Locks)
- _MATOBJLK (Materialize Object Locks)
- _MATSELLK (Materialize Materialize Selected Locks)
- _MATPRECL (Materialize Process Record Locks)
- _MATDRECL (Materialize Data Space Record Locks)
- _XFRLOCK (Transfer Object Lock)
2010-07-05 junleili-cn <junleili-cn@users.sourceforge.net>
mih52.rpgleinc: New Process and Thread Management instructions added.
- _RETTHCNT (Retrieve Thread Count)
- _TSTINLTH (Test Initial Thread)
- _TESTINTR (Test Pending Interrupts)
- _MATPRATR1 (Materialize Process Attributes)
- _MATPRATR2 (Materialize Process Attributes)
- _CMPPTRA (Compare Pointer for Object Addressability)
- _MATPTRL (Materialize Pointer Locations)
- _RSLVDP1 (Resolve Data Pointer)
- _RSLVDP2 (Resolve Data Pointer)
- _RSLVDP3 (Resolve Data Pointer)
- _RETTSADR (Retrieve Teraspace Address From Space Pointer)
- _CMPSWP1 (Compare and Swap)
- _CMPSWP2 (Compare and Swap)
- _CMPSWP4 (Compare and Swap)
- _CMPSWP8 (Compare and Swap)
If you have any advice on i5/OS Programmer's Toolkit, please let us know: