[Info-vax] Calling $CREPRC in COBOL
Richard Maher
maher_rjSPAMLESS at hotmail.com
Wed Jun 15 04:54:05 EDT 2022
On 11/06/2022 6:10 pm, Phil Howell wrote:
> On Saturday, 11 June 2022 at 6:17:11 pm UTC+10, Richard Maher wrote:
>> On 11/06/2022 9:05 am, Richard Maher wrote:
>>> On 11/06/2022 1:39 am, VAX... 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
>
> Boldly going where no COBOL has been before
>
> Nice to see dclexh used in anger again
>
> I always found that compiling with /LIST and /MAP=DECLARED
> showed you what the layout actually is, rather than what you thought it was
>
My not be strictly COBOL but the memory lingers: -
https://github.com/RichardMaher/Brotkrumen/blob/master/testmap.html
<script type="application/javascript">
'use strict';
/* identification division.
* program-id. YouCantTouchThis-BreakItDown.
* author. Richard Maher.
* version. 1.0
*/
Because of the hard-coded Google Map Key, you must copy the file to your
local system to run it.
Seems a lot of effort to get smooth marker movement but it's not up to me.
More information about the Info-vax
mailing list