I have searched the internet for the Ada spec package for Starlet and I have not found a document that lists it or gives some information about things like Starlet.Rab_Type_Init or Starlet.Rab_C_Seq. I am not familiar with VMS and pretty new to the Ada language, but I need to work on a legacy system and more information about Starlet would help me in figuring out the current systems functionality. Also, I specifically am working with indexed, sequential, and relative files through Starlet. There are some places where people use indexed files with the Indexed_Io package, but not in this instance I am working on currently. Anyone who could point me in the right direction would be a big help.
-Thanks for the help!
Searching for more information on Starlet.flush, starlet.rewind, & starlet.connect
-
Topic author - Visitor
- Posts: 1
- Joined: Wed Jul 19, 2023 9:40 am
- Reputation: 0
- Status: Offline
Re: Searching for more information on Starlet.flush, starlet.rewind, & starlet.connect
Code: Select all
> [...] Starlet.Rab_Type_Init or Starlet.Rab_C_Seq. [...]
While you wait for someone who knows something, here's some
guesswork...
In C it's common to declare various RMS structures like the FAB and
RAB, and then initialize them with some basic/popular content, so:
#include <rms.h> /* <fabdef.h>, <namdef.h>, <rabdef.h>, ... */
[...]
struct FAB my_fab; /* File Access Block */
struct RAB my_rab; /* Record Access Block */
[...]
my_rab = cc$rms_rab; /* Initialize RAB. */
my_fab = cc$rms_fab; /* Initialize FAB. */
my_rab.rab$l_fab = &my_fab; /* Point RAB to FAB. */
The cc$rms_XXX things are predefined, and I don't recall ever seeing
what's in one.
I wouldn't bet a nickel on it, but if your code were creating a
STARLET.RAB_TYPE structure, and then setting it to whatever
Starlet.Rab_Type_Init might be, then my uneducated guess would be that
you're looking at the Ada equivalent of this kind of thing.
As for Starlet.Rab_C_Seq, depending on the invisible details, I might
guess that it corresponds to one of these constants (from <rabdef.h>):
#define RAB$C_SEQ 0 /* sequential access */
#define RAB$C_KEY 1 /* keyed access */
#define RAB$C_RFA 2 /* rfa access */
#define RAB$C_STM 3 /* stream access (valid only for sequential org) */
(The "$" -> "_" translation looks right.)
It may be that this kind of "documentation" is confined to the text
libraries where the C header files (or other-language equivalents) are
supplied, and might be hard to obtain without having a C (or whatever)
compiler installed on a VMS system.
For more details on the I/O details, you might try the RMS manual:
https://docs.vmssoftware.com/docs/vsi-openvms-record-management-services-reference-manual.pdf
Edit:
> [...] Starlet.flush, starlet.rewind, & starlet.connect
I'd guess that these are the system services, $FLUSH, $REWIND, and
$CONNECT. See the RMS manual.
> [...] people use indexed files [...]
That would be tougher if your target OS doesn't do that. Plain-old
sequential I/O on VMS requires enough learning to satisfy my desire for
confusion. It's not UNIX stream-of-bytes.
Last edited by sms on Wed Jul 19, 2023 11:57 am, edited 1 time in total.
-
- Master
- Posts: 154
- Joined: Fri Jun 28, 2019 8:45 am
- Reputation: 0
- Location: South Tyneside, UK
- Status: Offline
- Contact:
Re: Searching for more information on Starlet.flush, starlet.rewind, & starlet.connect
as those ADA packages are wrappers around the Record Management Services (RMS) then you may find the RMS manual useful https://docs.vmssoftware.com/vsi-openvm ... ce-manual/
and the Guide to OpenVMS File Applications for background https://docs.vmssoftware.com/guide-to-o ... lications/
The DEC ADA Runtime Reference Manual is here https://docs.vmssoftware.com/docs/ada_rtr.pdf
and the Guide to OpenVMS File Applications for background https://docs.vmssoftware.com/guide-to-o ... lications/
The DEC ADA Runtime Reference Manual is here https://docs.vmssoftware.com/docs/ada_rtr.pdf
Last edited by imiller on Fri Jul 21, 2023 6:40 am, edited 1 time in total.
Ian Miller
[ personal opinion only. usual disclaimers apply. Do not taunt happy fun ball ].
[ personal opinion only. usual disclaimers apply. Do not taunt happy fun ball ].