Browse Prior Art Database

Utilizing a Program Loaded into the User Program Area to Load Another Module in the Same User Program Area

IP.com Disclosure Number: IPCOM000086479D
Original Publication Date: 1976-Sep-01
Included in the Prior Art Database: 2005-Mar-03
Document File: 2 page(s) / 14K

Publishing Venue

IBM

Related People

Bianchi, C: AUTHOR [+3]

Abstract

It is known [*] that a program loaded into the User Program Area can load, via SVC 202, only programs to be allocated in the Transient Program Area and not programs to be allocated in the same User Program Area.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 2

Utilizing a Program Loaded into the User Program Area to Load Another Module in the Same User Program Area

It is known [*] that a program loaded into the User Program Area can load, via SVC 202, only programs to be allocated in the Transient Program Area and not programs to be allocated in the same User Program Area.

For example, a user program can call system functions like RENAME, LISTFILE, ERASE, etc. (hold in files MODULE loaded, one by one, in the Transient Program Area) but can not load other functions like EDIT, ' COPYFILE, SORT, etc. (hold in files MODULE which are loaded in the User Program Area and therefore overlap the calling program, so that a correct reentry is impossible). To allow any program to use also this second type function, the following procedure can be adopted:

1. The main program (MAIN) is loaded not at the HEX 20000 but, at a higher address, for example:. LOAD MAIN (ORIGIN 5000).

2. The program (or a subroutine, at any level) saves the content of the following addresses of the NUCON table of CMS: MAINHIGH MAINSTRT MAINLIST FREELOWE.

3. Two addresses are modified. The load address of the main program, eventually rounded at integer page address, is stored at FREELOWE location, and an address of a few pages lower (say 5 for example) is stored at MAINHIGH location.

4. An SVC 202 is issued to load the required MODULE (for example, EDIT of a file); the loading is executed starting from the beginning of the User Program Area (20000 hex). The loaded MODULE does not overlap the calling program. If there is not enough space, the system issues the usual error message, and control is correctly returned to the calling user program.

5. At the exit of the MODULE (FILE or QUIT subcommands for EDIT), the u...