[Info-vax] 64-bit (was Re: New CEO of VMS Software)
Dave Froble
davef at tsoft-inc.com
Sat Jan 13 18:30:36 EST 2024
On 1/13/2024 2:22 PM, John Reagan wrote:
> On 1/12/2024 6:46 PM, Dave Froble wrote:
>> On 1/12/2024 3:22 PM, Arne Vajhøj wrote:
>>> On 1/12/2024 2:57 PM, Dave Froble wrote:
>>>> On 1/12/2024 7:23 AM, Arne Vajhøj wrote:
>>>>> On 1/12/2024 12:08 AM, Dave Froble wrote:
>>>>>> On 1/11/2024 3:48 PM, Arne Vajhøj wrote:
>>>>>>> On 1/11/2024 1:17 PM, Simon Clubley wrote:
>>>>>>>> On 2024-01-11, Dave Froble <davef at tsoft-inc.com> wrote:
>>>>>>>>> If RMS doesn't fit your requirements, then don't use it.
>>>>>>>>
>>>>>>>> Everyone uses RMS, even if it hidden from you by the language. The RMS
>>>>>>>> references are still in the executable you create however.
>>>>>>>
>>>>>>> In practice yes.
>>>>>>>
>>>>>>> In theory one can use SYS$QIO(W) for all IO and bypass RMS. But
>>>>>>> it is very cumbersome (especially if one cannot use RMS for stuff
>>>>>>> like finding IFI).
>>>>>>
>>>>>> And if one is using a database product that has nothing to do with RMS ???
>>>>>
>>>>> I would still expect that database product to use RMS to open
>>>>> the database file even if the actual IO is done by
>>>>> SYS$QIO(W) / SYS$IO_PERFORM(W) or via memory mapped file.
>>>>
>>>> Your expectation would be wrong.
>>>
>>> It happens frequently.
>>>
>>>> File opens without RMS use QIO to open a file.
>>>
>>> How does it get the FID?
>>
>> I'll post pieces of code to keep this short, well, relatively ..
>>
>> ; Parse the file specification, using the RMS $PARSE service
>> ;
>> MOVAB WRK_FAB,R8 ; Load FAB address
>> MOVAB WRK_NAM,FAB$L_NAM(R8) ; Set name block address
>> MOVL DSC$A_POINTER(R3),FAB$L_FNA(R8)
>> CVTWB DSC$W_LENGTH(R3),FAB$B_FNS(R8)
>> $PARSE FAB = R8 ; Invoke RMS parsing service
>> BLBS R0,200$ ; Continue if all is okay
>> BRW ERRORS ; Else return with error code
>> ;
>> ; Set up the filename descriptor for the ACP access
>> ;
>> 200$: MOVL FAB$L_NAM(R8),R8 ; Point to NAM block
>> MOVZBL NAM$B_ESL(R8),R0 ; Length of expanded string
>> MOVL NAM$L_ESA(R8),R1 ; Address of expanded string
>> LOCC #^A"]",R0,(R1) ; Find end of directory
>> SUBW3 #1,R0,WRK_Q_FILDSC+DSC$W_LENGTH
>> ADDL3 #1,R1,WRK_Q_FILDSC+DSC$A_POINTER
>>
>
> Please don't use that code. Looking for a hard-coded closing
> bracket? Oh pleeeze...
>
> Use the various NAM$B_DIR,NAM$L_DIR fields or use $FILESCAN.
>
> I immediately stopped looking when I saw that LOCC.
>
Not a problem John. The database product is no longer in use. And most likely
will never be used again.
Data could have been ">" :-)
Was just showing Arne that RMS is not essential when opening a VMS file.
What might you expect from 1984?
--
David Froble Tel: 724-529-0450
Dave Froble Enterprises, Inc. E-Mail: davef at tsoft-inc.com
DFE Ultralights, Inc.
170 Grimplin Road
Vanderbilt, PA 15486
More information about the Info-vax
mailing list