[Coco] Sharing a value with the calling routine in Basic09

coco at jechar.ca coco at jechar.ca
Sat Aug 15 16:18:27 EDT 2020


I don't think what you are saying is correct because
say my programs were called x and y

in x I set p=SOME-VALUE
then I print p and get
SOME-VALUE
then I call y passing p to y
then I  set p=some-OTHER-value
then I print p and get
some-OTHER-value
but when back in the calling program x
when I print p and get
SOME-VALUE
so basic09 did not remember what module y did.



On 2020-08-15 15:49, Wayne Campbell wrote:
> Pass by reference is the default. This means that just passing the 
> variable
> name is enough. If you update that variable and the procedure you 
> called
> the variable in the procedure that called it will reflect that change. 
> To
> pass by value, you use the variable name plus zero in the parameter 
> list.
> 
> Example:
> 
> RUN myProc(myVar+0)
> 
> Passes myVar by it's value.
> 
> RUN myProc(myVar)
> 
> Passes myVar by reference.
> 
> 
> On Sat, Aug 15, 2020, 11:21 AM <coco at jechar.ca> wrote:
> 
>> 
>> On 2020-08-15 14:17, coco at jechar.ca wrote:
>> > Would like to know if there is a standard way to pass back the
>> > value from a called routine to the caller. Cannot use GOSUB the
>> > routines need to be separate modules although a merged module file
>> > could be created by OS9 afterwards to make sure that if one module
>> > is loaded the other is too.
>> >
>> > I have an Idea involving ADDR PEEK and POKE of course if I am wrong
>> > this could go very wrong.
>> >
>> > Charlie
>> 
>> PS: I think what I am trying to do is called pass by reference
>> in C++
>> 
>> --
>> Coco mailing list
>> Coco at maltedmedia.com
>> https://pairlist5.pair.net/mailman/listinfo/coco
>> 


More information about the Coco mailing list