Link to home
Start Free TrialLog in
Avatar of DCS12
DCS12

asked on

S/36 Migration to AS/400

All I am currently in the process of migrating to from a virtual S36
machine to a S36 Environment.  I have found that the software appears
to be using external Assembler subroutines or I assume that is what it
is doing.  The OPT Code is EXIT and when I did the RSTS36LIBM it
created a QS36SBR source file.  Most of the members have a type DFU36
but some have ASM36.  If I view the source file it look all garbled
up.

Does anyone know how to create the subroutine object from this source
or can point me in the direction I need to go?

Thanks,
ASKER CERTIFIED SOLUTION
Avatar of Gary Patterson, CISSP
Gary Patterson, CISSP
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of DCS12
DCS12

ASKER

So then there should be a source for these objects and if I can find the source then I could just copy it into the program as an internal subroutine.  Correct?
No.  

First of all, there is no guarantee that you have source code - it may be part of a package, for example, that only shipped compiled subroutines.  

If you just follow the Migration Assistant and related documentation, it explains all of this, and the reports it generates will document all of your migration problems like this one.  It will also help you identify any other numerous troublesome migration items that you may encounter.

Depending on your environment, SSP to OS/400 S/36 Environment migration is not trivial: it is not as simple as just saving it on SSP and restoring it in the S/36 environment.  Please take an hour or two and give the Migration Assistant book I sent you a link to a good read before you do anything else.

If there is source for these objects, it is written in S/36 assembler,  which does you no good in the S/36 Environment under OS/400 (i5/OS, iOS,  whatever), since you can't

System 36 compiled objects (like these external subroutines) are not executable under OS/400.  This means that you need to recompile your programs.  The AS/400 S/36 environment includes an RPG II compiler that will compule most S/36 RPG code that runs under SSP.  It also includes an OCL interpreter, and a few other tools that enable you to make use of S/36 objects and source code.  

Unfortunately, there is no corresponding compiler (at least not any that I know of) for S/36 Assembler.  These routines you need to rewrite in some language that you can compile on an AS/400.

S/36 Compatible RPG Guide: http://publib.boulder.ibm.com/iseries/v5r1/ic2924/books/c0918180.pdf
System/36 Environment Programming: http://publib.boulder.ibm.com/infocenter/iseries/v5r3/topic/books/sc414730.pdf

- Gary Patterson
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Steve brings up a good point:

The IBM-supplied routines are numeric (SUBRnn), and are supported internally by the S/36 Environment RPG compiler, so they need no conversion.  These probably aren't what is giving you trouble, though.

IBM used to publish a guide that assisted in S/36 Assembler conversion: GC21-8160.  I  can't find it online, but you may be able to obtain a copy from IBM or somewhere.

- Gary
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of DCS12

ASKER

Thanks for the help and clarification.