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.
