This document deals with the relics of SATAN on GSI's former MVS mainframe computer, in particular
PL/I C DCL ( i_e(4), I_PosXL(3) ) BIN FIXED(15); short i_e[4], I_PosXL[3]; DCL ( r_posfactor init(0.03) ) dec float(6) float r_posfactor =0.03; DCL ( ABS, SQRT, CHAR ) BUILTIN: #include <math.h> DCL (i,j,k,l,m) BIN FIXED(31); long i,j,k,l,m; DCL (B_Pos_X(3)) BIT(1) ALIGNED; int B_POS_X[3]; B_Pos_X(i) = '0'B; B_Pos_X[i-1] = 0; DO i = 1 TO 3; for( i=1; i<=3; i++ ) { ... ... END; } IF I_Posxl ^= 0 THEN ...; if ( I_posxl != 0 ) ...; IF II ^= 0 & JJ < 4090 THEN DO; if ( (II!=0) && (JJ<4090) ) { ... ... END; } FLOOR(xx); floor(xx);
i_Energy
and I_ENERGY
are different variables.
You might use a case-insensitive text editor (e.g.nedit
)
to change variables to common spelling.
The most nasty difference, however, is the different handling of arrays,
which in C always start with index '0'
. Either you diminish all array
indices by 1, or you declare the C array with an additional element:
PL/I C DCL Array(3) DEC FLOAT(16); double Array[3]; Array(1) = ...; Array[0] = ...; Array(2) = ...; Array[1] = ...; Array(3) = ...; Array[2] = ...; DCL Array(3) DEC FLOAT(16); double Array[4]; Array(1) = ...; Array[1] = ...; Array(2) = ...; Array[2] = ...; Array(3) = ...; Array[3] = ...;
Another difference is the access to global and event parameters,
which needs extra macros (
$GLOPAR()
and
$EVTPAR()
)
in the C version as opposed to PL/I:
PL/I C $PARDCL( xx(2) ) TYPE(4); $PARDCL( xx(2) ) TYPE(float); $EVENT( par(2) ); $EVENT( par(2) ); ... yy = xx(2) * par(1); yy = $GLOPAR(xx(2)) * $EVTPAR(par(1));
<mvsuid>
and a unique
<library>
name.
The correspondence is as follows:
MVS ADSM/AIX file archive path 'RS0V.$<mvsuid>.<library>' <mvsuid>.<library> rs0v gdbm <mvsuid>.<library>.v rs0v vsamAssume you're the ex-MVS user
'x855'
who wants to get back
data from the standard VSAM library 'satan'
.
The fastest way to get back your analyzer data is as follows:
adsmcli retr x855.satan rs0v gdbm
satan
afe * * / lib(x855.satan)
aexport spect list /gdwill create the gd-file
spect.list
.
Normally it should not be necessary to touch the original VSAM datasets transferred to the AIX tape library. If it should be necessary though, here is an example how it goes:
adsmcli retr x855.satan.v rs0v vsam
vs2gdbm x855.satan.v x855.satan
x855.satan
will be
your freshly converted AIX analyzer library.
Last updated: M.Kraemer@gsi.de, 3-Aug-1999