Article 168072 of comp.os.vms: In article <33560306.446B@adv.magwien.gv.at>, Ferry Bolhar-Nordenkampf writes... >Jacques Raymond Kilchoer wrote: >> >> In my program I link a FAB to XAB blocks (for example XABPRO) before >> calling SYS$DISPLAY. Can I change the XAB blocks linked to the XAB >You can. RMS traverses the chain of XAB's whenever you call a RMS >service. This allows you to use the same FAB for multiple $DISPLAYS > with different XABs. Correct. >You _can't_ however change connected RABs since RMS internally stores >the IFI and ISI values assigned when you open the file and connect the >RAB. These values are checked whenever a RMS service is called. More or less correct. It are the IFI's / ISI's that 'make' the FAB / RAB. One could for example put a list of ISI's aside and later stick them in some random RAB to perform timer driven $FLUSH calls with independend of the original RAB. Of you use a list of IFIs to $CLOSE the files later without having to hang on to the whole FAB structure. Obviously you gotta go somewhat careful playing such games, but it _can_ be usefull. It _can_ save significant memory and _can_ increase locality of reference. For example, I've once 'tuned up' a generic RMS access package where the API require a RAB pointer, BUF pointer/lenght KEY pointer/length The code would later fill in all the RAB fields. I changed that RAB pointer to just be an ISI value and used just a single local RAB to fill in instead! Hope this helps, +--------------------------------------+ Hein van den Heuvel, Digital. | All opinions expressed are mine, and | "Makers of VMS and other | may not reflect those of my employer | fine Operating Systems." +--------------------------------------+