|
>From: "Leif Svalgaard" <leif@leif.org>
>Date: Sat, 10 Nov 2001 16:07:18 -0600
>
>remove both the value and the options clause.
>and it will work.
>
>> From: Craig Rutledge <craig_rutledge@mohawkind.com>
>> > I can not get the _CLRBTS or _SETBTS to function at all.
>> ==>Craig, I have your program. Here is a portion of the prototype
>> for CLRBTS:
>>
>> i_bit_string * value options(*string)
Removing VALUE means the pointer will be passed by reference. _CLRBTS
wants data to be passed by reference. The value keyword is correct; If
you remove it, you have to also change the data type to be character or
numeric, to be passed by reference.
Options(*string) IS wrong - it implies that character literals can be
coded as parameters. But it's not likely to be the source of the
problem unless a literal or expression is being passed. As long as you
pass a pointer or %addr(field), it wouldn't matter whether the option was
coded or not.
Here is a working program; running it in the debugger showed that it
gave the expected results.
D clrbts pr extproc('_CLRBTS')
D data * value
D bit 10u 0 value
D data s 3a inz(X'ffffff')
C callp clrbts (%addr(data): 0)
* now x'7fffff'?
C callp clrbts (%addr(data): 8 + 7)
* now x'7ffeff'?
C return
Barbara Morris
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.