18.08.2013 Views

(SYSLIB) Programming Reference Manual - Public Support Login ...

(SYSLIB) Programming Reference Manual - Public Support Login ...

(SYSLIB) Programming Reference Manual - Public Support Login ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Section 3<br />

<strong>SYSLIB</strong> Access Methods<br />

<strong>SYSLIB</strong> routines AEDIT$, AEDIT$F, AEDIT$SFDT, BSP$, CABSAD$, CRELAD$,<br />

CONWRD$, FDASC$, GETPSF$, INFOR$, ID$, MFDSP$, SAR$, SDFI, SDFO, and SFDT$<br />

are available as both relocatable and common bank routines. When using the common<br />

bank version of these routines, the library routine is not collected into the calling<br />

program.<br />

The calling program contains a jump to the common bank that contains the library<br />

routine, but the actual code of the library routine remains in the common bank. Because<br />

the common bank code does not get collected into the calling program, as the<br />

relocatable versions of the routines do, the calling program will be smaller. In cases<br />

where the library routine is large, this can result in a considerable saving of space. Also,<br />

since the common bank library routines exist independently of the calling programs, they<br />

may be modified without forcing the calling programs to be recompiled or re-collected.<br />

The jumps in the calling program remain valid even though the common bank code itself<br />

changes. When transporting an absolute program from one machine to another, the<br />

second machine must have the common bank library routines installed or the absolute<br />

program may guard mode or produce unpredictable results.To check on whether the<br />

<strong>SYSLIB</strong> common bank routines have been installed, it is only necessary to look for the<br />

absolute elements <strong>SYSLIB</strong>$1, <strong>SYSLIB</strong>$2, <strong>SYSLIB</strong>$3, and <strong>SYSLIB</strong>$4 in the file that<br />

contains the <strong>SYSLIB</strong> routines. These elements replace the <strong>SYSLIB</strong> common bank<br />

PIRCB$. However, PIRCB$ is still included to enable programs that were collected<br />

before the installation of <strong>SYSLIB</strong> level 75R3 to continue to run correctly.<br />

If an installation of <strong>SYSLIB</strong> is done using COMUS level 4R2 (and higher levels), then the<br />

<strong>SYSLIB</strong> common banks are put in the file SYS$LIB$*<strong>SYSLIB</strong>. If COMUS is not used for<br />

the installation of <strong>SYSLIB</strong>, then the elements will be contained in the file SYS$*LIB$. All<br />

the <strong>SYSLIB</strong> common banks have a starting address of 01000.<br />

Table D–2 in Appendix D lists the highest address of all <strong>SYSLIB</strong> common banks. The<br />

address of the <strong>SYSLIB</strong> level identifier is kept at 01003. The first word of the identifier is<br />

the number of words in the identifier followed by the ASCII character representation of<br />

the <strong>SYSLIB</strong> level (for example, 75R3).<br />

Some of the common bank <strong>SYSLIB</strong> routines require the calling program to provide a data<br />

area or a packet containing information that the routine needs. This area must be<br />

contained within a bank that is write enabled and based when the <strong>SYSLIB</strong> routine is<br />

called, and its addressing range must not overlap that of the <strong>SYSLIB</strong> common bank.<br />

7833 1733–004 3–1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!