Fixed page dynamic areas

Introduction and Overview

Fixed page dynamic areas are an extension of the 'Needs specific pages' flag (bit 8) on OS_DynamicArea 0 (Create). For certain applications it is necessary to directly access hardware or certain given page numbers. Where this is the case and no system-provided mapping is available it is possible to create a dynamic area which can be used to access the pages by supplying a Dynamic Area Handler routine. However, for the vast majority of cases the routine will specify a fixed set of pages for the dynamic area to grow into. This is where the 'Needs Fixed Pages' flag (bit 19) is useful.

Technical Details

Instead of providing a dynamic area handler routine the list of pages which are required for the dynamic area can be supplied as the workspace parameter on dynamic area creation, together with the 'Needs Fixed Pages' flag. The list of pages takes the same form as that used by the Dynamic Area Handler routines :

OffsetContents
0Page number (only when the 'Physical Mapping' flag is unset)
4Logical address (ignored)
8Physical address (only when the 'Physical Mapping' flag is set)

Fixed page dynamic areas will always occupy the maximum extent of the dynamic area and sufficient pages should be provided within the workspace parameter to create the dynamic area. The page block is not required after the dynamic area has been created. Fixed page dynamic areas may not be :

It is recommended that they be locked and 'not user draggable' if clients do not wish the areas to be resized by user operations.