[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