Craig Rutledge - Open Source iSeries Tools (JCRCMDS)

Site Map: Utilities  API Xref  Links  Path to /Free  Games  DOWNLOAD  Résumé  Original Home Page  Donations

Piaggio MP3
FREE (no cost) source code using the Free Software Foundation license.
These tools take advantage of
1) /Free format RPGLE.
2) CLLE data structures and pointers.
3) System APIs
4) Coding Standards based on Bryan Meyers RPG IV Jump Start book.
5) Common copy book and service program.
6) Comprehensive help text for each utility.

Last V5r4-V6r1 Release February 21st, 2015 (works on V7R1/2, just does not have all the cool free H,D and F spec stuff yet)

Yea! I am finally on a V7R1 box and can start using the IBM Rdi friendly V7R1 PTF that allows free form H, F and D specs. As time allows, 1) working on a utility to convert my source H,F and D specs to the totally free format, 2) then the rewrite of several JCRCMDS utilities to take advantage of new APIs, RPG functionality, and processing totally free code. I will post the H, F and D free utility here for you to use on your source when I finish it. Note: you cannot paste the download file into the lpex editor and install. For now please use instructions on download page.

The JCRCMDS library, featured many times in the Iseries ClubTech Newsletter and previously a commercial quality product at Rochester Initiative , is a practical set of API-based utilities for AS/400 Programmers. These utilities are the continuing evolution for 30 years of desperate need and a hardwired passion for programming. The source utilities include quick information retrieval tools you use to write, maintain, and provide analysis of your programs. Conversion tools for bringing your legacy code up to modern standards. Even code generation tools that can save many hours of programming time.   The File and Object tools provide many important timesavers, Analysis helpers, Job and Spool File finders, and quick, easy access to many other necessary functions. Also provided are Data Queue, Netf, and XML generation tools.

Here is just a couple examples of how a JCRCMDS utility can increase your effectiveness. After a hard day of coding in RDI, back out and run the JCRNUMB utility to automatically indent format your /free code based on logic structures. (Next JCRCMDS release will auto-format your free format definition structures!). If in PDM, use JCRRFIL - File name / Record Format Xref for RPG source, to instantly see all program files and how they are used, the physicals, record formats, the renames, the file libraries, then you can see the keys, select omits, fields in the file, and the data. Useful good stuff! Also look for the JCRLKEY Tech Tip in archive January 10th, 2014   MC Press Online.

Your feedback on achieving maximum effectiveness with these tools is ALWAYS appreciated. Thanks to the many hundreds of persons, around the world, who have made excellent suggestions for improvement or enhanced functionality to meet their specific requirements. This feedback continues to make these tools better for me and everyone else who uses them.

All the API formats and data structures in one common copy book will be a major benefit to anyone writing their own API based applications. See the API Xref for details. See Download link for install instructions.

 JCRANZD DSPF screen layout with field names report .
 JCRANZO O spec print layout with field names report.
 JCRANZP PRTF layout with field names report
 JCRCALL Quick command prompt created from any programs entry parm field names/attributes.
 JCRSDENT Print Indented CL or RPG source listing
 JCRFSET Scan File Set where used. Lists all RPG/CLP source members using selected PF and any associated LFs.
 JCRIND Indicators used in RPG / CL / DDS source code display..
 JCRLSRC Print source code lib/file/member and module info for every *pgm object in selected library.
 JCRNUMB Mark the RPG structure statements in your source code. Also a powerful /free source reformat indention tool. It can automatically format your /free code based on logic structures.
 JCRPRTF Generate DDS prtf source from RPG4 output specs.
 JCRRFIL File name / Record Format Xref for RPG source (you NEED this one!).
 JCRRTVRPG Retrieve source for any RPGLE object compiled with DBGVIEW *LIST or *ALL.
 JCRRFLD Length of fields used in RPG source code.
 JCRSMLT Powerful source scan utility! Scan multiple source files / multiple strings.
 JCRSUBR Print program Subroutine Structure. Reads RPGLE source and creates an indented listing of the subroutine names.
 JCR4MAX RPG4 source conversion to full RPG4 syntax. A must-have if you still have oldstyle code.
 JCR4PROTO Generate RPG4 source member with the *ENTRY and CALLs converted to main procedure interface and CALLP prototypes.
 JCRFREESS Calc spec listing showing side-by-side columnar and /free source.
 JCR5FREE Columnar source conversion to /free formatted source. Read and understand a Path to /Free before getting this utility.
 JCRFD Expanded File Description with view Keys, Select/Omit, Data Base Relations, Members,  Record Formats, and Trigger information.
 JCRFFD File field description print / display / outfile / rpgle source. Detail key fields and search field/text capabilities have been added.
 JCRLKEY Find logical with your selected key field(s)!
 JCRNOTPOP List of fields in selected data file that are not populated.
 JCRDQD Data queue description display.
 JCRDQE Data queue entries display without disturbing the entries.
 JCRDTAARA List *DECimal Data Area values and Distance to Rollover
 JCRBND Outputs a list of procedures/symbols that are exported by a selected *BNDDIR, *SRVPGM or *MODULE. Great tool for finding where procedure names are located.
 JCRDUMP Count/Analyze RPG Dump spooled files.
 JCRLJOBD Find JOBDs with selected library on Library list . Run before deleting library.
 JCRQJOBD Find JOBDs using selected JOBQ.
 JCRJOB List selected Job Names with Options (including slick file I/O monitor).
 JCRLOG Never press F9 to retrieve executed commands again! Great timesaver.
 JCROBJD Expanded work with objects display. Powerful cleanup assist tool.
 JCROLCK WRKOBJLCK with options to ENDJOB *IMMED and  SNDBRKMSG to user.
 JCRPATTR Prompt CRTPRTF with existing print file creation attributes.
 JCRRECRT Load existing command values for recreate.
 JCRSPLF List selected Spool Files with Options. Includes ability to duplicate spooled files and override creation attributes.
 JCRSSQL Scan interactive STRSQL sessions for selected SQL statements!
 JCRUFIND List User Spaces containing selected strings. Very handy for user space analysis
 JCRUSPACE View selected User Space. Very handy for user space analysis
IFS Drive
 JCRIFSCPY Subfile of entries in your IFS directory! You can select to copy to iSeries. Also allows utilities packaged by XMLGEN to be installed directly from your IFS drive.
 JCRIFSMBR Copy selected source member to your IFS directory. After execution you will have txt file and a .zip file of the member.
 JCRIFSSAV Copies a selected savf to a selected directory on the IFS drive. Then uses the Qshell JAR command to create a .zip file from the copied source member.
 JCRNETFF Send Multiple Network Files To Multiple Userids
 JCRNETFM Send Multiple Network Members To Multiple Userids
 JCRNETQ Send network all spooled files in a selected outq.
System Info
 JCRPARTI Returns system name, serial number, partition number (very important for licensing this days), OS version, User, and Job Name.
 XMLGEN Generate XML documents for transfer (like those on this page).
 XMLPREVIEW Easy preview of install objects in an utility, then easy install!
 XMLSVIEW Developers: Easy view of XMLGEN script member in a subfile.
 XMLSRCFIL Load all members of selected source file into single XML member.
Sundry Execute cmd JCRSUNDRY to access these tools.
JCRSBSDR Generate report comparing pool IDs defined in SBSD to pool IDs actually used by routing entries. Helpful when trying to clean up sbs definitions.
JCRJRNAR Displays subfile of files being journaled by selected journal name.
JCRBIGCHAR Returns big characters (12 X 13) for passed in 10 char string. Used in production to return heading user profile data for spooled file distribution. Includes called program and example print program.
JCRGRAPH Bar graph example. Simple way to show a bar graph in a Display file.
JCRHEXCHR Shows a subfile of the hex/biton values to generate all valid screen characters.
JCRF7 SEU Exit Program that will split/combine lines while in a SEU session. Big time saver!
JCRLICUSE Number of licenses available and who has a lock on a license for 3rd party software.
JCRLSTCNN List network connections
JCRLSTIFC List tcp/ip connections
JCRUSRPRFR List enabled user profiles/last signon date
JCRUSRAUT List class and special authorities of seleted user profiles
JCRIFSMBR Copy member to IFS Drive. Will send source member to the IFS drive and .zip it for you.
JCRIFSSAV Copy *SAVF object to stream file IFS and zip. Expanded target directory to allow 50 char long path.
Animations Run options available on  JCRSUNDRY command.  If animations run too fast/slow on your system, adjust milliseconds delay in source.
JCRZANIM0 Full screen binary clock showing hours, minutes and seconds.
JCRZANIM1 Creative fast positioning of a small single window gives illusion of colored boxes going around the screen.
JCRZANIM2 Ahead warp speed. Expanding concentric squares use colors to come out of the screen or reverse and retreat into the screen.
JCRZANIM3 Raise the US flag by repositioning a window with overlays.
JCRZANIM4 Have your dumb buddy sit on the right side of your monitor then run this classic I Am With Stupid finger pointer
JCRZANIM5 Random starfield pays tribute to Star Trek opening tag line.
JCRZANIM6 Racquetball Cutthroat Server Rotation
Games Execute cmd JCRGAMES to access these programs.
BATTLESHIP It started as a simple program for testing functions as 2 dimensional array indexes. Got way outta hand and mutated into full blown game pitting you against the power of the iSeries.
BLACKJACK Beat the house with this version of 21. Three dimensional array indexing function forms the card faces.
CRIBBAGE The most complex game code ever written for the iSeries. Unique hand scoring system shows card sets and point values. Robust strategy optimization routines.   If you like Cribbage, you will be amazed by this one.
PYRAMID Pyramid variation of Solitaire for the iSeries!. Addictive fun. Select all pairs of cards scoring 13 to win. I use this game when I am thinking.
RUBIKSCUBE Fun with a 3d 6x3x3 indexing scheme! Rubiks gurus check out the  Inductive Rules by Peter Suber. Non-gurus (like me) can use this game to rotate lots of pretty colors across the screen!
VIDEOPOKER Uses a hash table and the random number API to sort a deck of cards. Also uses the concept of implicitly defined arrays as DS subfields of defined arrays.
TICTACTOE 2d array indexing example.
YAHTZEE Classic dice game
MINE SWEEPER   A game submitted by Tibor Erdos in Hungary.

The XML-based source distribution method, used on this page and a growing number of others, provides a slick turnkey solution for anyone with source code to share for their utilities or applications. Check out the XMLGEN command (listed above) that generated all files on this page. XMLGEN was published in the May 2002 issue of Iseries News and also has been featured in the 400times.UK.

Also visit the Games section for several entertaining programs and some good 2d and 3d array learning examples.

Back to Utilities.  Back to SiteMap.   API used by utility Cross Reference.   Download page DOWNLOAD

If you problems unzipping a file, please get the latest version of Winzip from the Web. Also please be able to upload a text file from your PC to a source member on your 400. If you do not know this procedure, find someone at your shop that can assist you. For any question about a command or have difficulties with installation, email me .

You may also wish to visit these links to several persons or websites, who in many ways, have helped me with these utilities or are providing support for these utilities by having a link to here on their page.

©  1985-2015  Craig Rutledge.   All programs on this site are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. These programs are distributed in the hope that they will be useful, but without any warranty; without even the implied warranty of fitness for a particular purpose. See the GNU General Public License for more details.

Last modified May 4, 2015.