OS-9 Assembly Code Development: Difference between revisions

From F256 Foenix
Jump to navigationJump to search
(Added section headers)
Line 1: Line 1:
== Overview ==
== Overview ==
Each process in NitrOS9 is allocated its own 64K address space.  When run, the program object code is loaded into one memory space, and the variables and data structures are loaded into the other.  In addition, NitrOS9 keeps an separate MMU table for each process.  So it is important to use the OS9 calls F$MapBlk and F$ClrBlk calls to map in memory blocks with the MMU.   
Each process in NitrOS9 is allocated its own 64K address space.  When run, the program object code is loaded into one memory space, and the variables and data structures are loaded into the other.  This includes separate execution and data directories and std in, std out and std err.  In addition, NitrOS9 keeps an separate MMU table for each process.  So it is important to use the OS9 calls F$MapBlk and F$ClrBlk calls to map in memory blocks with the MMU.   


Registers U, Y, DP and SP are set with U = start of data area, Y = end of data area, DP = page # of beginning page, SP = end of data area + 1
Registers U, Y, DP and SP are set with U = start of data area, Y = end of data area, DP = page # of beginning page, SP = end of data area + 1

Revision as of 15:39, 3 June 2024

Overview

Each process in NitrOS9 is allocated its own 64K address space. When run, the program object code is loaded into one memory space, and the variables and data structures are loaded into the other. This includes separate execution and data directories and std in, std out and std err. In addition, NitrOS9 keeps an separate MMU table for each process. So it is important to use the OS9 calls F$MapBlk and F$ClrBlk calls to map in memory blocks with the MMU.

Registers U, Y, DP and SP are set with U = start of data area, Y = end of data area, DP = page # of beginning page, SP = end of data area + 1

Process Module Structure

Accessing Variables and Data Structures

Accessing Table Data with PCR