[Info-vax] Calling $CREPRC in COBOL
Richard Maher
maher_rjSPAMLESS at hotmail.com
Sat Jun 11 04:17:04 EDT 2022
On 11/06/2022 9:05 am, Richard Maher wrote:
> On 11/06/2022 1:39 am, VAXman- at SendSpamHere.ORG wrote:
>> 10 ENQ-TYPE PIC X(1) VALUE EXTERNAL PQL$_ENQLM.
>> ..............^
>> %COBOL-E-EXTREFVAL, VALUE EXTERNAL clause ignored - valid only on COMP
>> data-item
>>
>> How do you put PQL$ items in to a COBOL "byte"?
>>
>
> Unfortunately COBOL has never supported by integers but there are
> several ways to do it. (I haven't fired up my VMS machines in 5 years
> otherwise I'd give you an example. Back in the day when google groups
> could search the archives you could find one of several $creprc examples
> with all parameters including TCB)
>
> Cumbersome: -
>
> 01 enqlm_word pic 9(4) comp value external pql$_enqlm.
> 01 enqlm_byte redefines enqlm_word.
> 03 pql_enqlm pic x.
>
> move pql_enqlm to somewhere.
>
> Lose external symbols and hard code: -
>
> Hexadecimal literals:
>
> 10 ENQ-TYPE PIC X(1) VALUE x"00".
>
> Special Names:
>
> SPECIAL-NAMES.
> PQL$_ENQLM value is 44. (I don't know the value)
>
> 10 ENQ-TYPE PIC X(1) VALUE PQL$_ENQLM.
>
> The way I do it: -
>
> Define a global .PSECT in the same .MAR file that you already probably
> do for $pqldef GLOBAL
>
> Just lay it out as you would for macro.
>
> .psect fred long, gbl,shr,wrt,blah
>
> .byte pql$_enqlm
>
> Then declare an EXTERNAL variable as the same name as your global psect.
>
> 01 fred external.
> 03 pql$_enqlm pic x. (doesn't have to be same name)
> 03 pic x.
>
> * The last byte is NECESSARY to round up the psect size on Alpha, and
> * Itanium. Macro does this automatically.
>
> Again many examples in cov over the years
Below is an entry response. Need to find whole conversation or
view-as-tree: -
https://groups.google.com/g/comp.os.vms/c/xJptlKOregU/m/y0s3fbcoqtQJ
https://groups.google.com/g/comp.os.vms/c/xJptlKOregU/m/y0s3fbcoqtQ
https://groups.google.com/g/comp.os.vms/c/TAmi6i8fMo0/m/1f1JnjqS8RsJ
More information about the Info-vax
mailing list