About Memory Requirements

On the mainframe, an area of memory can be located either below the line or above the line. The term 'the line' means the point at which the address of an area of memory requires four bytes to hold it. Three-byte addresses can point to memory up to 16Mb. Any area of memory starting at a higher point than this requires a four-byte address. Four-byte addresses are actually 31-bit addresses, since bit 0 is used for other purposes. A 31-bit address can point to memory up to 2Gb.

The memory requirements of an Assembler program are indicated by its AMODE (or addressing mode) and RMODE (or residency mode). AMODE governs the type of addresses the program uses, while RMODE indicates where the program must be located when it is loaded for execution.

There are two AMODE values:

You can set AMODE to 24 or 31 for Assembler, since we emulate both types of addressing by mapping mainframe-style above and below the line addresses to real 32-bit PC memory addresses. An AMODE (24) program can only access memory below the line, while an AMODE(31) program can access memory both below and above the line.

There are two RMODE values: