Background

I started working on the IBM S/38 back in 1982 and on the AS/400 in 1988. In school I learned Basic, Cobol, Fortran and machine code. We wrote our programs using computers from Norsk Data (ND), and my first basic programs were entered on a lineprinter like terminal (no display!). When I started on the S/38 I remember that I thought the editor (SEU) and language (RPG III) with it's cycle were old fashioned and poor on features. Since then RPG have matured and grown into a "not so bad" language, especially with the introduction of ILE.

Back in 1987 I read in News/3x magazine (now News/400) about an MI compiler for the S/38 from a company called SoftCommand. We ordered a copy and started investigating the internals of our system. The QSYS programs could be debugged then, so you could find out a lot of interesting stuff if you were patient and had a lot of time to spare. DMPSYSOBJ where a command I often used at the time.

When we got our first AS/400 (a B30), we set up an exit program on our programmers menu to send the MI source to the S/38. On the S/38 the received source were compiled. If the compilation was successful, the compiled program were sent back to the AS/400 and restored, automatically, to the object library specified on the programmers menu. If unsuccessful, the compiler listing was returned. Luckily IBM soon released the QPRCRTPG API, and we could write our own "front end", the CRTMIPGM commmand.

I want to share some of my programs with other AS/400 programmers. Hopefully they will prove useful, educational or entertaining to some of you.

The programs and source code presented on these pages are provided on an "as is" basis and I cannot take any responsibility for any damage caused by using them. They have been developed on some of my spare time during more than 10 years.

As API's have grown in numbers, I have tried to use them in stead of accessing internal objects directly. A few program requires security level 30 or less, unless you know how to "patch" them to become "System state" programs.

24th January 1999