I think then that the thing to do is ask Greg Cooper. @Bruce Decker - maybe
you can facilitate this?

As I use OSX, I don’t have jBASE available without some messing around
 Hunt Hint. OSX port would be easy. As would a docket image of jBASE :)

Jim

On Wed, Mar 4, 2020 at 23:05 Igor Osmolovskiy <[email protected]> wrote:

> Hello Jim,
>
> Thanks for your participation in the discussion :)
>
> > Are writing a pure C program and wish to call in to subroutines etc?
> Yes, that's the idea. Actually the final goal is wider, namely to write a
> Python extension in C that would call JBC functions. Basically I managed to
> do it but this excessive session is something would be good to get rid of.
>
> I've applied jbc -S myrtn.b for a simple code already which results in
> producing 2 files: myrtn.c and the myrtn.j, the latter one being included
> into the .c one via #include "myrtn.j".
> But in the .j file already we can see the lines like
>     #define DEF_SEL_VAR JLibReturnDefaultSelect(dp) /* Default select
> list for this program */
>     #define DEF_FILE_VAR JLibReturnDefaultFile(dp) /* Default file
> descriptor for this program */
>
> i.e. dp is supposed to be initialized already by the moment myrtn is
> called.
>
> I've managed to find the next dp related functions mentioned in some
> libraries
> jbase_getdp() - this works, i.e. initializes dp, but creates a new session
> jbase_getdp_nocreate() - not working if called alone. but it works and
> returns the dp1 value when called after jbase_getdp(), and dp1 = dp in
> this case
> jbase_getdpEX() - not sure what it should do
> jbase_setdpEX() - not sure what it should do
>
>
> Please see the sample piece of code
>
> #include <jsystem.h>
> extern "C" DPSTRUCT *jbase_getdp();
>
> ...
>
> PyMODINIT_FUNC
> jbc_oconv(PyObject*, PyObject* _args)
> {
> ...
> DPSTRUCT *dp = jbase_getdp();
> OCONV_BBBBB(result, tmp, VarHelper(arg1), VarHelper(arg2));  // this if
> defined in jsystem.h as   #define OCONV_BBBBB(Target, ConvReg, Source,
> Conversion) JLibGConvRun(*dp*, ConvReg, Target, Source, Conversion, 1)
> ...
> }
>
>
>
> I've tried to read the jmainfunction.obj  as well where some other jbase
> related functions are mentioned but could not figure out any useful one...
>
> Maybe there is something I am missing or some non-documented function?
>
> Would appreciate any hints! :)
> Thanks
> Igor
>
> среда, 4 марта 2020 г., 8:11:30 UTC+1 пользователь Jim Idle написал:
>>
>> Wow - it has been a long time since that code ;) However, what you ask is
>> possible I believe. It depends on your context. Are writing a pure C
>> program and wish to call in to subroutines etc?
>>
>> Probably the best place to start is to generate the C code for a very
>> small jBC program:
>>
>> lufc.b
>> CRT "Leeds United are Magic!"
>>
>> jbc -S lufc.b
>>
>> Then you will see the startup sequence for a standard executable and can
>> copy the code.
>>
>> However, my memory is vague, but I think that we had a C function you can
>> call to do what you are doing and that will return the dp for reuse. It
>> get's passed to subroutines for instance.
>>
>> Perhaps you can post the code you currently have.
>>
>> Jim
>>
>> On Wed, Mar 4, 2020 at 3:19 AM Igor Osmolovskiy <[email protected]> wrote:
>>
>>> Dear all
>>>
>>> I need the jBase DP (data pointer) to be initialized. I've actually
>>> managed to initialize it by calling the jbase_getdp(). But in both cases
>>> the new child session is created in jshell (and gets removed automatically
>>> after the code has been executed).
>>>
>>> So I am wondering: is there a possibility to retrieve and use the
>>> current session DP somehow? So that no child session would get created
>>>
>>> Any advice would be highly appreciated
>>>
>>> Thanks in advance
>>>
>>>
>>> PS: to the admin, it is actually a jBase related question rather than
>>> TAFC. Thanks
>>>
>>>
>>> Kind regards,
>>> Igor
>>>
>>> --
>>> --
>>> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>>>
>>> To post, send email to [email protected]
>>> To unsubscribe, send email to [email protected]
>>> For more options, visit this group at
>>> http://groups.google.com/group/jBASE?hl=en
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "jBASE" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/jbase/73153581-25ae-493a-95f6-8afc5cdf7813%40googlegroups.com
>>> <https://groups.google.com/d/msgid/jbase/73153581-25ae-493a-95f6-8afc5cdf7813%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>
>>
>>> --
> --
> IMPORTANT: T24/Globus posts are no longer accepted on this forum.
>
> To post, send email to [email protected]
> To unsubscribe, send email to [email protected]
> For more options, visit this group at
> http://groups.google.com/group/jBASE?hl=en
>
> ---
> You received this message because you are subscribed to the Google Groups
> "jBASE" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jbase/c010b5b5-199a-42b8-a7fa-2b351052c29f%40googlegroups.com
> <https://groups.google.com/d/msgid/jbase/c010b5b5-199a-42b8-a7fa-2b351052c29f%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
-- 
IMPORTANT: T24/Globus posts are no longer accepted on this forum.

To post, send email to [email protected]
To unsubscribe, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"jBASE" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jbase/CAGPPfg8NnQJsWhHadjiG3Kim8_U3fWxb7M4sVsnx8oZSn0YNug%40mail.gmail.com.

Reply via email to