All DOS processes have this structure
Source position: amigados.pas line 541
type tProcess = record  | 
||
pr_Task: tTask;  | 
  | 
|
pr_MsgPort: tMsgPort;  | 
  | 
This is address from DOS functions  | 
pr_Pad: SmallInt;  | 
  | 
Remaining variables on 4 byte boundaries  | 
pr_SegList: LongInt;  | 
  | 
Array of seg lists used by this process  | 
pr_StackSize: LongInt;  | 
  | 
Size of process stack in bytes  | 
pr_GlobVec: Pointer;  | 
  | 
Global vector for this process  | 
pr_TaskNum: LongInt;  | 
  | 
CLI task number of zero if not a CLI  | 
pr_StackBase: LongInt;  | 
  | 
Pointer to high memory end of process stack  | 
pr_Result2: LongInt;  | 
  | 
Value of secondary result from last call  | 
pr_CurrentDir: LongInt;  | 
  | 
Lock associated with current directory  | 
pr_CIS: LongInt;  | 
  | 
Current CLI Input Stream  | 
pr_COS: LongInt;  | 
  | 
Current CLI Output Stream  | 
pr_ConsoleTask: Pointer;  | 
  | 
Console handler process for current window  | 
pr_FileSystemTask: Pointer;  | 
  | 
File handler process for current drive  | 
pr_CLI: LongInt;  | 
  | 
pointer to TConsoleLineInterpreter  | 
pr_ReturnAddr: Pointer;  | 
  | 
Pointer to previous stack frame  | 
pr_PktWait: Pointer;  | 
  | 
Function to be called when awaiting msg  | 
pr_WindowPtr: Pointer;  | 
  | 
Window for error printing  | 
pr_HomeDir: LongInt;  | 
  | 
Home directory of executing program  | 
pr_Flags: LongInt;  | 
  | 
Flags telling dos about process (PRF_*)  | 
pr_ExitCode: Pointer;  | 
  | 
Code to call on exit of program or nil  | 
pr_ExitData: LongInt;  | 
  | 
Passed as an argument to pr_ExitCode.  | 
pr_Arguments: PChar;  | 
  | 
Arguments passed to the process at start  | 
pr_LocalVars: tMinList;  | 
  | 
Local environment variables  | 
pr_ShellPrivate: LongWord;  | 
  | 
for the use of the current shell  | 
pr_CES: LongInt;  | 
  | 
Error stream - if nil, use pr_COS  | 
end;  | 
Create and Device Proc returns pointer to the MsgPort in this structure dev_proc = Address(SmallInt(DeviceProc()) - SizeOf(Task))