kerravon86@yahoo.com.au [hercules-390]
2018-10-14 10:09:42 UTC
I have been working on getting PDPCLIB
to work on IBM C (again), and I have been
able to build a module, but it is not
working as expected on z/OS (just
returns RC 12).
I would like to debug it on MVS/380, and
have the load module loaded, but unlike
on z/OS, I am getting a S0C1, on this
instruction:
X'A50A8000'
which is:
OILH 0,-32768
which is being used to set the top bit
of the 32-bit register as the end of
parameter list.
I can't explain why OILH is getting a S0C1 but
other z/Arch instructions like SGR are working
fine.
In both cases the instructions are defined as:
GENx___x___x900
which I have overridden with:
#ifdef FEATURE_S380
#define GENx___x___x900 GENx37Xx___x900
to enable them all.
For both SGR and OILH I have enabled them
in esame.c with this code:
#if defined(FEATURE_S380)
#define FEATURE_ESAME
#endif
In opcode.c I have enabled the a5xx routines with:
#if defined(FEATURE_ESAME) || defined(FEATURE_ESAME_N3_ESA390) || defined(FEATURE_S380)
DEF_INST(execute_a5xx)
{
regs->ARCH_DEP(opcode_a5xx)[inst[1]](inst, regs);
}
I've run out of ideas.
I'm using Hercules/380 which is a modified
version of standard Hercules 3.07.
Any idea what else I need to enable to allow
the OILH instruction to work?
Thanks. Paul.
to work on IBM C (again), and I have been
able to build a module, but it is not
working as expected on z/OS (just
returns RC 12).
I would like to debug it on MVS/380, and
have the load module loaded, but unlike
on z/OS, I am getting a S0C1, on this
instruction:
X'A50A8000'
which is:
OILH 0,-32768
which is being used to set the top bit
of the 32-bit register as the end of
parameter list.
I can't explain why OILH is getting a S0C1 but
other z/Arch instructions like SGR are working
fine.
In both cases the instructions are defined as:
GENx___x___x900
which I have overridden with:
#ifdef FEATURE_S380
#define GENx___x___x900 GENx37Xx___x900
to enable them all.
For both SGR and OILH I have enabled them
in esame.c with this code:
#if defined(FEATURE_S380)
#define FEATURE_ESAME
#endif
In opcode.c I have enabled the a5xx routines with:
#if defined(FEATURE_ESAME) || defined(FEATURE_ESAME_N3_ESA390) || defined(FEATURE_S380)
DEF_INST(execute_a5xx)
{
regs->ARCH_DEP(opcode_a5xx)[inst[1]](inst, regs);
}
I've run out of ideas.
I'm using Hercules/380 which is a modified
version of standard Hercules 3.07.
Any idea what else I need to enable to allow
the OILH instruction to work?
Thanks. Paul.