Craig Rutledge - Open Source iSeries Tools (JCRCMDS)

Utilities   API Xref  Links   Path to /Free   Games   Download   Resume   Help with domain/hosting fees

FREE (no cost) rpg Free Format source using the Free Software Foundation license.

The JCRCMDS library has been featured many times in the Iseries ClubTech Newsletter, recently JCRHFD and JCRLKEY articles at MC Press Online, and previously a commercial grade product at Rochester Initiative. The library continues to be a practical set of API-based utilities to really help AS/400, Iseries and System i Programmers.

V7 Release April 14, 2016. Overlay replacement excluded when duplicating AFPDS spooled files. See link in JCRSPLFR2 source for full discussion. JCRPROTO generate CALLP prototypes now in-lines one or two parameters and retains conditioning indicator on call. Fix to JCR4MAX conversion to full RPG4 syntax. (Please get this latest version before using utility!). Out file given to JCRFILR show RPG fields, also shows file where field came from. JCRSMLT and JCRFSET now allow unlimited search files. JCRFD file description member list has added member type and full text description. JCRSMLT scan multiple has CL 112 length comment capability and a new outq parameter. JCRFSET File where used now recognizes files inside procedures and is free usage () aware, (note will need to add file library list before running). JCRNUMB and JCR4MAXR3 use data structure I/O instead of I specifications. Command definition required fields clean-up, interface improvements, performance tweaks, and other coding enhancements.

Help text is provided with each utility. See Download link for install instructions.
Free H F D
  • Convert fixed format H, F and D specifications into free format DCL-* statements from selected member into new member.
  • CLASS, DATFMT, PROCPTR, and TIMFMT are converted to datatype extensions.
  • VARYING keyword removed and the VARCHAR datatype is used.
  • *NEXT is removed if the overlay keyword is the data structure name.
  • DS LEN is not allowed with extname. Will require change to your extname object.
  • *DELETE will be added to the usage keyword if record is deleted in main or procedure.
  • + or - lengths are now part of the data type extension, packed(1: +2).
  • UDS requires DTAARA{{(name)} {*AUTO}. note fixed format allowed IN and OUT with uds. You will need to change *auto to *userctl if using these opcodes.
  • Data area names will be quoted and upper cased.
  • Data area *VAR modifier is removed. These will not be quoted or upper cased.
  • Continuation lines (+ and -) will be reformatted as keywords are expanded or removed.
  • Program described files with EADD on output will need to be E only after conversion.
  • External names and record formats will be wrapped in quotes. dcl-ds ScreenFieldDS extname(JCRFFDF) end-ds; is not valid unless JCRFFDF is a constant or a defined field name.
  • Removes all /FREE and /END-FREE statements
  • H specs with embedded compiler directives will not be converted.
  • You will need to review embedded compiler directives in your source member before conversion. Remove any OS version directives as after conversion will only run on v7 or better. Source with embedded directives should be reviewed after conversion as converter is not directive aware.
  • If you have constants, inz or *java objects longer than 2048, scan/replace 2048 in jcrhfdr source and change size of last variable in FspecDS in JCRCMDSCPY before recompiling jcrgetfilr and jcrhfdr.
  • Restriction: Field / Procedure names longer than seventy four characters or Names defined with multiple ellipsis... will probably not convert.
 JCRPROTO Create free format DCL-PI and DCL-PR statements from selected member fixed format *ENTRY and CALL/PARM opcodes into new member.
 JCRPRGEN Generate free format DCL-PR prototype in selected member to call selected program.
 JCRNUMB Automatically re-indent your free format code based on logic structures. Updated to indent DCL-* structures. Number the RPG structure statements in your source code.
 JCRSDENT Show Source Indentation. Updated to show indentation lines for DCL-* structures
Outline View
 JCRRFIL File name / Record Format Xref for RPG source (you NEED this one!). Updated to read DCL-F source.
 JCRRFLD Field names, length and attributes used in selected RPG source code.
 JCRIND Indicator list used in RPG / CL / DDS source members.
 JCRSUBR Subroutine List. Reads RPGLE source to create an indented listing of the subroutine names.
 JCRANZD DSPF screen layout with field names report .
 JCRANZO O spec print layout with field names report. Now reads DCL-F.
 JCRANZP PRTF layout with field names report
 JCRCALL Quick command prompt created from any programs entry parm field names/attributes.
 JCRFSET Scan File Set where used. Lists all RPG/CLP source members using selected PF and any associated LFs. Updated to read DCL-F source.
 JCRLSRC Print source code lib/file/member and module info for every *pgm object in selected library.
 JCRPRTF Generate DDS prtf source from RPG4 output specs.
 JCRRTVRPG Retrieve source for any RPGLE object compiled with DBGVIEW *LIST or *ALL.
 JCRSMLT Powerful source scan utility! Scan multiple source files / multiple strings. New CHOICE keyword allows unlimited file selection
 JCR4MAX RPG4 source conversion to full RPG4 syntax. A must-have if you still have oldstyle code.
 JCRFREESS Calc spec listing showing side-by-side fixed and free format source.
 JCR5FREE Fixed format C spec conversion to free formatted source. Read and understand a Path to /Free before using 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. (modified 10/15 to allow RPG reserved words as file fields)
 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. Now with job I/O monitor to see is user is moving records.
 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.
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.
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
JCRLJOBD List Jobd using selected Library
JCRQJOBD List Jobd using selected Jobq
JCRUSRJOBD List User Profile using Jobd
JCRUSROUTQ List User Profile using Outq
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.
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
Visit the Games page for several entertaining 2 and 3D programs.
Games Execute cmd JCRGAMES to access these programs.
BATTLESHIP It started as a simple program for testing functions as two dimensional array indexes. Got way out of hand mutating into full blown game pitting you against the power of the iSeries.
BLACKJACK Beat the house with this version of 21. Three dimensional array 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 Rubiks gurus check out the  Inductive Rules by Peter Suber.
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.

Your feedback on achieving maximum effectiveness with these tools is ALWAYS appreciated. Thanks to contributers from 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.

Back to Utilities.   SiteMap.    API Cross Reference.    Download Page    Supporting and Reciprocal Links    Coding Standards based on Bryan Meyers RPG IV Jump Start book.

  1984-2016  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 April 14, 2016.

Piaggio MP3