mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-31 07:11:46 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			1381 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			1381 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| {
 | |
|     This file is part of the Free Pascal run time library.
 | |
| 
 | |
|     dos definitions (V50) for MorphOS/PowerPC
 | |
|     Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
 | |
| 
 | |
|     Free Pascal conversion
 | |
|     Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
 | |
| 
 | |
|     See the file COPYING.FPC, included in this distribution,
 | |
|     for details about the copyright.
 | |
| 
 | |
|     This program is distributed in the hope that it will be useful,
 | |
|     but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | |
| 
 | |
|  **********************************************************************}
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos global definitions (V50)
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| const
 | |
|   DOSNAME = 'dos.library';
 | |
| 
 | |
| const
 | |
|   DOSTRUE  = -1;
 | |
|   DOSFALSE =  0;
 | |
| 
 | |
| const
 | |
|   MODE_OLDFILE   = 1005;
 | |
|   MODE_NEWFILE   = 1006;
 | |
|   MODE_READWRITE = 1004;
 | |
| 
 | |
| const
 | |
|   OFFSET_BEGINNING = -1;
 | |
|   OFFSET_CURRENT   =  0;
 | |
|   OFFSET_END       =  1;
 | |
|   OFFSET_BEGINING  =  OFFSET_BEGINNING; { * Typo fix * }
 | |
| 
 | |
| const
 | |
|   BITSPERBYTE  = 8;
 | |
|   BYTESPERLONG = 4;
 | |
|   BITSPERLONG  = 32;
 | |
|   _MAXINT      = $7FFFFFFF;
 | |
|   _MININT      = $80000000;
 | |
| 
 | |
| const
 | |
|   SHARED_LOCK    = -2;
 | |
|   ACCESS_READ    = -2;
 | |
|   EXCLUSIVE_LOCK = -1;
 | |
|   ACCESS_WRITE   = -1;
 | |
| 
 | |
| 
 | |
| type
 | |
|   PDateStamp = ^TDateStamp;
 | |
|   TDateStamp = packed record
 | |
|     ds_Days  : LongInt;
 | |
|     ds_Minute: LongInt;
 | |
|     ds_Tick  : LongInt;
 | |
|   end;
 | |
| 
 | |
| const
 | |
|   TICKS_PER_SECOND = 50;
 | |
| 
 | |
| 
 | |
| type
 | |
|   PFileInfoBlock = ^TFileInfoBlock;
 | |
|   TFileInfoBlock = packed record
 | |
|     fib_DiskKey     : LongInt;
 | |
|     fib_DirEntryType: LongInt;
 | |
|     fib_FileName    : Array[0..107] Of Char;
 | |
|     fib_Protection  : LongInt;
 | |
|     fib_EntryType   : LongInt;
 | |
|     fib_Size        : LongInt;
 | |
|     fib_NumBlocks   : LongInt;
 | |
|     fib_Date        : TDateStamp;
 | |
|     fib_Comment     : Array[0..79] Of Char;
 | |
| 
 | |
|     fib_OwnerUID    : Word;
 | |
|     fib_OwnerGID    : Word;
 | |
| 
 | |
|     fib_Reserved    : Array[0..31] Of Char;
 | |
|   end;
 | |
| 
 | |
| const
 | |
|   FIBB_OTR_READ    = 15;
 | |
|   FIBB_OTR_WRITE   = 14;
 | |
|   FIBB_OTR_EXECUTE = 13;
 | |
|   FIBB_OTR_DELETE  = 12;
 | |
|   FIBB_GRP_READ    = 11;
 | |
|   FIBB_GRP_WRITE   = 10;
 | |
|   FIBB_GRP_EXECUTE = 9;
 | |
|   FIBB_GRP_DELETE  = 8;
 | |
| 
 | |
|   FIBB_SCRIPT      = 6;
 | |
|   FIBB_PURE        = 5;
 | |
|   FIBB_ARCHIVE     = 4;
 | |
|   FIBB_READ        = 3;
 | |
|   FIBB_WRITE       = 2;
 | |
|   FIBB_EXECUTE     = 1;
 | |
|   FIBB_DELETE      = 0;
 | |
| 
 | |
| const
 | |
|   FIBF_OTR_READ    = (1 Shl FIBB_OTR_READ);
 | |
|   FIBF_OTR_WRITE   = (1 Shl FIBB_OTR_WRITE);
 | |
|   FIBF_OTR_EXECUTE = (1 Shl FIBB_OTR_EXECUTE);
 | |
|   FIBF_OTR_DELETE  = (1 Shl FIBB_OTR_DELETE);
 | |
|   FIBF_GRP_READ    = (1 Shl FIBB_GRP_READ);
 | |
|   FIBF_GRP_WRITE   = (1 Shl FIBB_GRP_WRITE);
 | |
|   FIBF_GRP_EXECUTE = (1 Shl FIBB_GRP_EXECUTE);
 | |
|   FIBF_GRP_DELETE  = (1 Shl FIBB_GRP_DELETE);
 | |
| 
 | |
|   FIBF_SCRIPT      = (1 Shl FIBB_SCRIPT);
 | |
|   FIBF_PURE        = (1 Shl FIBB_PURE);
 | |
|   FIBF_ARCHIVE     = (1 Shl FIBB_ARCHIVE);
 | |
|   FIBF_READ        = (1 Shl FIBB_READ);
 | |
|   FIBF_WRITE       = (1 Shl FIBB_WRITE);
 | |
|   FIBF_EXECUTE     = (1 Shl FIBB_EXECUTE);
 | |
|   FIBF_DELETE      = (1 Shl FIBB_DELETE);
 | |
| 
 | |
| const
 | |
|   FAULT_MAX = 82;
 | |
| 
 | |
| 
 | |
| type
 | |
|   BPTR = LongInt;
 | |
|   BSTR = LongInt;
 | |
| 
 | |
| type
 | |
|   PInfoData = ^TInfoData;
 | |
|   TInfoData = packed record
 | |
|     id_NumSoftErrors: LongInt;
 | |
|     id_UnitNumber   : LongInt;
 | |
|     id_DiskState    : LongInt;
 | |
|     id_NumBlocks    : LongInt;
 | |
|     id_NumBlocksUsed: LongInt;
 | |
|     id_BytesPerBlock: LongInt;
 | |
|     id_DiskType     : LongInt;
 | |
|     id_VolumeNode   : LongInt; {BPTR}
 | |
|     id_InUse        : LongInt;
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   ID_WRITE_PROTECTED = 80;
 | |
|   ID_VALIDATING      = 81;
 | |
|   ID_VALIDATED       = 82;
 | |
| 
 | |
|   ID_NO_DISK_PRESENT  = -1;
 | |
|   ID_UNREADABLE_DISK  = $42414400;
 | |
|   ID_DOS_DISK         = $444F5300;
 | |
|   ID_FFS_DISK         = $444F5301;
 | |
|   ID_INTER_DOS_DISK   = $444F5302;
 | |
|   ID_INTER_FFS_DISK   = $444F5303;
 | |
|   ID_FASTDIR_DOS_DISK = $444F5304;
 | |
|   ID_FASTDIR_FFS_DISK = $444F5305;
 | |
|   ID_LNFS_DOS_DISK    = $444F5306;
 | |
|   ID_LNFS_FFS_DISK    = $444F5307;
 | |
|   ID_NOT_REALLY_DOS   = $4E444F53;
 | |
|   ID_KICKSTART_DISK   = $4B49434B;
 | |
|   ID_MSDOS_DISK       = $4d534400;
 | |
| 
 | |
| const
 | |
|   ERROR_NO_FREE_STORE            = 103;
 | |
|   ERROR_TASK_TABLE_FULL          = 105;
 | |
|   ERROR_BAD_TEMPLATE             = 114;
 | |
|   ERROR_BAD_NUMBER               = 115;
 | |
|   ERROR_REQUIRED_ARG_MISSING     = 116;
 | |
|   ERROR_KEY_NEEDS_ARG            = 117;
 | |
|   ERROR_TOO_MANY_ARGS            = 118;
 | |
|   ERROR_UNMATCHED_QUOTES         = 119;
 | |
|   ERROR_LINE_TOO_LONG            = 120;
 | |
|   ERROR_FILE_NOT_OBJECT          = 121;
 | |
|   ERROR_INVALID_RESIDENT_LIBRARY = 122;
 | |
|   ERROR_NO_DEFAULT_DIR           = 201;
 | |
|   ERROR_OBJECT_IN_USE            = 202;
 | |
|   ERROR_OBJECT_EXISTS            = 203;
 | |
|   ERROR_DIR_NOT_FOUND            = 204;
 | |
|   ERROR_OBJECT_NOT_FOUND         = 205;
 | |
|   ERROR_BAD_STREAM_NAME          = 206;
 | |
|   ERROR_OBJECT_TOO_LARGE         = 207;
 | |
|   ERROR_ACTION_NOT_KNOWN         = 209;
 | |
|   ERROR_INVALID_COMPONENT_NAME   = 210;
 | |
|   ERROR_INVALID_LOCK             = 211;
 | |
|   ERROR_OBJECT_WRONG_TYPE        = 212;
 | |
|   ERROR_DISK_NOT_VALIDATED       = 213;
 | |
|   ERROR_DISK_WRITE_PROTECTED     = 214;
 | |
|   ERROR_RENAME_ACROSS_DEVICES    = 215;
 | |
|   ERROR_DIRECTORY_NOT_EMPTY      = 216;
 | |
|   ERROR_TOO_MANY_LEVELS          = 217;
 | |
|   ERROR_DEVICE_NOT_MOUNTED       = 218;
 | |
|   ERROR_SEEK_ERROR               = 219;
 | |
|   ERROR_COMMENT_TOO_BIG          = 220;
 | |
|   ERROR_DISK_FULL                = 221;
 | |
|   ERROR_DELETE_PROTECTED         = 222;
 | |
|   ERROR_WRITE_PROTECTED          = 223;
 | |
|   ERROR_READ_PROTECTED           = 224;
 | |
|   ERROR_NOT_A_DOS_DISK           = 225;
 | |
|   ERROR_NO_DISK                  = 226;
 | |
|   ERROR_NO_MORE_ENTRIES          = 232;
 | |
| 
 | |
|   ERROR_IS_SOFT_LINK             = 233;
 | |
|   ERROR_OBJECT_LINKED            = 234;
 | |
|   ERROR_BAD_HUNK                 = 235;
 | |
|   ERROR_NOT_IMPLEMENTED          = 236;
 | |
|   ERROR_RECORD_NOT_LOCKED        = 240;
 | |
|   ERROR_LOCK_COLLISION           = 241;
 | |
|   ERROR_LOCK_TIMEOUT             = 242;
 | |
|   ERROR_UNLOCK_ERROR             = 243;
 | |
| 
 | |
| const
 | |
|   RETURN_OK    = 0;
 | |
|   RETURN_WARN  = 5;
 | |
|   RETURN_ERROR = 10;
 | |
|   RETURN_FAIL  = 20;
 | |
| 
 | |
| const
 | |
|   SIGBREAKB_CTRL_C = 12;
 | |
|   SIGBREAKB_CTRL_D = 13;
 | |
|   SIGBREAKB_CTRL_E = 14;
 | |
|   SIGBREAKB_CTRL_F = 15;
 | |
| 
 | |
|   SIGBREAKF_CTRL_C = (1 Shl SIGBREAKB_CTRL_C);
 | |
|   SIGBREAKF_CTRL_D = (1 Shl SIGBREAKB_CTRL_D);
 | |
|   SIGBREAKF_CTRL_E = (1 Shl SIGBREAKB_CTRL_E);
 | |
|   SIGBREAKF_CTRL_F = (1 Shl SIGBREAKB_CTRL_F);
 | |
| 
 | |
| const
 | |
|   LOCK_DIFFERENT    = -1;
 | |
|   LOCK_SAME         =  0;
 | |
|   LOCK_SAME_VOLUME  =  1;
 | |
|   LOCK_SAME_HANDLER =  LOCK_SAME_VOLUME;
 | |
| 
 | |
| const
 | |
|   CHANGE_LOCK = 0;
 | |
|   CHANGE_FH   = 1;
 | |
| 
 | |
| const
 | |
|   LINK_HARD  = 0;
 | |
|   LINK_SOFT  = 1;
 | |
| 
 | |
| const
 | |
|   ITEM_EQUAL    = -2;
 | |
|   ITEM_ERROR    = -1;
 | |
|   ITEM_NOTHING  =  0;
 | |
|   ITEM_UNQUOTED =  1;
 | |
|   ITEM_QUOTED   =  2;
 | |
| 
 | |
| const
 | |
|   DOS_FILEHANDLE   = 0;
 | |
|   DOS_EXALLCONTROL = 1;
 | |
|   DOS_FIB          = 2;
 | |
|   DOS_STDPKT       = 3;
 | |
|   DOS_CLI          = 4;
 | |
|   DOS_RDARGS       = 5;
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos date/time definitions
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| type
 | |
|   { * Required to avoid conflict with default types * }
 | |
|   _PDateTime = ^_TDateTime;
 | |
|   _TDateTime = packed record
 | |
|     dat_Stamp  : TDateStamp;
 | |
|     dat_Format : Byte;
 | |
|     dat_Flags  : Byte;
 | |
|     dat_StrDay : Pointer;
 | |
|     dat_StrDate: Pointer;
 | |
|     dat_StrTime: Pointer;
 | |
|   end;
 | |
| 
 | |
| const
 | |
|   LEN_DATSTRING  = 16;
 | |
| 
 | |
| const
 | |
|   DTB_SUBST  = 0;
 | |
|   DTF_SUBST  = (1 Shl DTB_SUBST);
 | |
|   DTB_FUTURE = 1;
 | |
|   DTF_FUTURE = (1 Shl DTB_FUTURE);
 | |
| 
 | |
| const
 | |
|   FORMAT_DOS = 0;
 | |
|   FORMAT_INT = 1;
 | |
|   FORMAT_USA = 2;
 | |
|   FORMAT_CDN = 3;
 | |
|   FORMAT_MAX = FORMAT_CDN;
 | |
|   FORMAT_DEF = 4;
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos extended structures definitions
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| type
 | |
|   PProcess = ^TProcess;
 | |
|   TProcess = packed record
 | |
|     pr_Task          : TTask;
 | |
|     pr_MsgPort       : TMsgPort;
 | |
|     pr_Pad           : Word;
 | |
|     pr_SegList       : DWord;    { BPTR }
 | |
|     pr_StackSize     : LongInt;  { 68k stacksize! }
 | |
|     pr_GlobVec       : Pointer;
 | |
|     pr_TaskNum       : LongInt;
 | |
|     pr_StackBase     : DWord;    { BPTR }
 | |
|     pr_Result2       : LongInt;
 | |
|     pr_CurrentDir    : DWord;    { BPTR }
 | |
|     pr_CIS           : DWord;    { BPTR }
 | |
|     pr_COS           : DWord;    { BPTR }
 | |
|     pr_ConsoleTask   : Pointer;
 | |
|     pr_FileSystemTask: Pointer;
 | |
|     pr_CLI           : DWord;    { BPTR }
 | |
|     pr_ReturnAddr    : Pointer;
 | |
|     pr_PktWait       : Pointer;
 | |
|     pr_WindowPtr     : Pointer;
 | |
|     pr_HomeDir       : DWord;    { BPTR }
 | |
|     pr_Flags         : LongInt;
 | |
|     pr_ExitCode      : Pointer;  { Procedure }
 | |
|     pr_ExitData      : LongInt;
 | |
|     pr_Arguments     : PChar;
 | |
|     pr_LocalVars     : TMinList;
 | |
|     pr_ShellPrivate  : DWord;
 | |
|     pr_CES           : DWord;    { BPTR }
 | |
|   end;
 | |
| 
 | |
| const
 | |
|   PRB_FREESEGLIST = 0;
 | |
|   PRF_FREESEGLIST = (1 Shl PRB_FREESEGLIST);
 | |
| 
 | |
|   PRB_FREECURRDIR = 1;
 | |
|   PRF_FREECURRDIR = (1 Shl PRB_FREECURRDIR);
 | |
| 
 | |
|   PRB_FREECLI     = 2;
 | |
|   PRF_FREECLI     = (1 Shl PRB_FREECLI);
 | |
| 
 | |
|   PRB_CLOSEINPUT  = 3;
 | |
|   PRF_CLOSEINPUT  = (1 Shl PRB_CLOSEINPUT);
 | |
| 
 | |
|   PRB_CLOSEOUTPUT = 4;
 | |
|   PRF_CLOSEOUTPUT = (1 Shl PRB_CLOSEOUTPUT);
 | |
| 
 | |
|   PRB_FREEARGS    = 5;
 | |
|   PRF_FREEARGS    = (1 Shl PRB_FREEARGS);
 | |
| 
 | |
| 
 | |
| type
 | |
|   PFileHandle = ^TFileHandle;
 | |
|   TFileHandle = packed record
 | |
|     fh_Flags      : DWord;
 | |
|     fh_Interactive: LongInt;
 | |
|     fh_Type       : PMsgPort;
 | |
|     fh_Buf        : LongInt;
 | |
|     fh_Pos        : LongInt;
 | |
|     fh_End        : LongInt;
 | |
|     fh_Func1      : LongInt;
 | |
|     fh_Func2      : LongInt;
 | |
|     fh_Func3      : LongInt;
 | |
|     fh_Arg1       : LongInt;
 | |
|     fh_Arg2       : LongInt;
 | |
|     { *** V50 MorphOS *** }
 | |
|     fh_BufSize    : LongInt;
 | |
|     fh_OrigBuf    : LongInt;
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PDOSPacket = ^TDOSPacket;
 | |
|   TDOSPacket = packed record
 | |
|     dp_Link: PMessage;
 | |
|     dp_Port: PMsgPort;
 | |
|     case Byte of
 | |
|     0 : ( dp_Action : Longint;
 | |
|           dp_Status : Longint;
 | |
|           dp_Status2: Longint;
 | |
|           dp_BufAddr: Longint;
 | |
|         );
 | |
|     1 : ( dp_Type: Longint;
 | |
|           dp_Res1: Longint;
 | |
|           dp_Res2: Longint;
 | |
|           dp_Arg1: Longint;
 | |
|           dp_Arg2: Longint;
 | |
|           dp_Arg3: Longint;
 | |
|           dp_Arg4: Longint;
 | |
|           dp_Arg5: Longint;
 | |
|           dp_Arg6: Longint;
 | |
|           dp_Arg7: Longint;
 | |
|         );
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PStandardPacket = ^TStandardPacket;
 | |
|   TStandardPacket = packed record
 | |
|     sp_Msg: TMessage;
 | |
|     sp_Pkt: TDOSPacket;
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   ACTION_NIL            = 0;
 | |
|   ACTION_STARTUP        = 0;
 | |
|   ACTION_GET_BLOCK      = 2; { *** OBSOLETE *** }
 | |
|   ACTION_SET_MAP        = 4;
 | |
|   ACTION_DIE            = 5;
 | |
|   ACTION_EVENT          = 6;
 | |
|   ACTION_CURRENT_VOLUME = 7;
 | |
|   ACTION_LOCATE_OBJECT  = 8;
 | |
|   ACTION_RENAME_DISK    = 9;
 | |
|   ACTION_WRITE          = 'W';
 | |
|   ACTION_READ           = 'R';
 | |
|   ACTION_FREE_LOCK      = 15;
 | |
|   ACTION_DELETE_OBJECT  = 16;
 | |
|   ACTION_RENAME_OBJECT  = 17;
 | |
|   ACTION_MORE_CACHE     = 18;
 | |
|   ACTION_COPY_DIR       = 19;
 | |
|   ACTION_WAIT_CHAR      = 20;
 | |
|   ACTION_SET_PROTECT    = 21;
 | |
|   ACTION_CREATE_DIR     = 22;
 | |
|   ACTION_EXAMINE_OBJECT = 23;
 | |
|   ACTION_EXAMINE_NEXT   = 24;
 | |
|   ACTION_DISK_INFO      = 25;
 | |
|   ACTION_INFO           = 26;
 | |
|   ACTION_FLUSH          = 27;
 | |
|   ACTION_SET_COMMENT    = 28;
 | |
|   ACTION_PARENT         = 29;
 | |
|   ACTION_TIMER          = 30;
 | |
|   ACTION_INHIBIT        = 31;
 | |
|   ACTION_DISK_TYPE      = 32;
 | |
|   ACTION_DISK_CHANGE    = 33;
 | |
|   ACTION_SET_DATE       = 34;
 | |
| 
 | |
|   ACTION_SAME_LOCK      = 40;
 | |
| 
 | |
|   ACTION_SCREEN_MODE    = 994;
 | |
| 
 | |
|   ACTION_CHANGE_SIGNAL  = 995;
 | |
| 
 | |
|   ACTION_READ_RETURN     = 1001;
 | |
|   ACTION_WRITE_RETURN    = 1002;
 | |
|   ACTION_SEEK            = 1008;
 | |
|   ACTION_FINDUPDATE      = 1004;
 | |
|   ACTION_FINDINPUT       = 1005;
 | |
|   ACTION_FINDOUTPUT      = 1006;
 | |
|   ACTION_END             = 1007;
 | |
| 
 | |
|   ACTION_FORMAT          = 1020;
 | |
|   ACTION_MAKE_LINK       = 1021;
 | |
| 
 | |
|   ACTION_SET_FILE_SIZE   = 1022;
 | |
|   ACTION_WRITE_PROTECT   = 1023;
 | |
| 
 | |
|   ACTION_READ_LINK       = 1024;
 | |
|   ACTION_FH_FROM_LOCK    = 1026;
 | |
|   ACTION_IS_FILESYSTEM   = 1027;
 | |
|   ACTION_CHANGE_MODE     = 1028;
 | |
| 
 | |
|   ACTION_COPY_DIR_FH     = 1030;
 | |
|   ACTION_PARENT_FH       = 1031;
 | |
|   ACTION_EXAMINE_ALL     = 1033;
 | |
|   ACTION_EXAMINE_FH      = 1034;
 | |
| 
 | |
|   ACTION_EXAMINE_ALL_END = 1035;
 | |
|   ACTION_SET_OWNER       = 1036;
 | |
| 
 | |
|   ACTION_LOCK_RECORD     = 2008;
 | |
|   ACTION_FREE_RECORD     = 2009;
 | |
| 
 | |
|   ACTION_ADD_NOTIFY      = 4097;
 | |
|   ACTION_REMOVE_NOTIFY   = 4098;
 | |
| 
 | |
|   ACTION_SERIALIZE_DISK  = 4200;
 | |
| 
 | |
|   ACTION_GET_DISK_FSSM   = 4201;
 | |
|   ACTION_FREE_DISK_FSSM  = 4202;
 | |
| 
 | |
| 
 | |
| type
 | |
|   PErrorString = ^TErrorString;
 | |
|   TErrorString = packed record
 | |
|     estr_Nums: Pointer; { ^LongInt }
 | |
|     estr_Byte: Pointer; { ^Byte    }
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PRootNode = ^TRootNode;
 | |
|   TRootNode = packed record
 | |
|     rn_TaskArray         : DWord;      { BPTR }
 | |
|     rn_ConsoleSegment    : DWord;      { BPTR }
 | |
|     rn_Time              : TDateStamp;
 | |
|     rn_RestartSeg        : LongInt;
 | |
|     rn_Info              : DWord;      { BPTR }
 | |
|     rn_FileHandlerSegment: DWord;      { BPTR }
 | |
|     rn_CliList           : TMinList;
 | |
|     rn_BootProc          : PMsgPort;
 | |
|     rn_ShellSegment      : DWord;      { BPTR }
 | |
|     rn_Flags             : LongInt;
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PDOSLibrary = ^TDOSLibrary;
 | |
|   TDOSLibrary = packed record
 | |
|     dl_Lib          : TLibrary;
 | |
|     dl_Root         : PRootNode;
 | |
|     dl_GU           : Pointer;
 | |
|     dl_A2           : LongInt;
 | |
|     dl_A5           : LongInt;
 | |
|     dl_A6           : LongInt;
 | |
|     dl_Errors       : PErrorString;
 | |
|     dl_TimeReq      : PTimeRequest;
 | |
|     dl_UtilityBase  : PLibrary;
 | |
|     dl_IntuitionBase: PLibrary;
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   RNB_WILDSTAR = 24;
 | |
|   RNF_WILDSTAR = (1 Shl RNB_WILDSTAR);
 | |
| 
 | |
|   RNB_PRIVATE1 = 1;
 | |
|   RNF_PRIVATE1 = (1 Shl RNB_PRIVATE1);
 | |
| 
 | |
| 
 | |
| type
 | |
|   PCliProcList = ^TCliProcList;
 | |
|   TCliProcList = packed record
 | |
|     cpl_Node : TMinNode;
 | |
|     cpl_First: LongInt;
 | |
|     cpl_Array: Array[0..0] Of PMsgPort;
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PDOSInfo = ^TDOSInfo;
 | |
|   TDOSInfo = packed record
 | |
|     case Byte of
 | |
|     0 : ( di_ResList: DWord; { BPTR }
 | |
|         );
 | |
|     1 : ( di_McName    : DWord; { BPTR }
 | |
|           di_DevInfo   : DWord; { BPTR }
 | |
|           di_Devices   : DWord; { BPTR }
 | |
|           di_Handlers  : DWord; { BPTR }
 | |
|           di_NetHand   : Pointer;
 | |
|           di_DevLock   : TSignalSemaphore;
 | |
|           di_EntryLock : TSignalSemaphore;
 | |
|           di_DeleteLock: TSignalSemaphore;
 | |
|         );
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PSegment = ^TSegment;
 | |
|   TSegment = packed record
 | |
|     seg_Next : DWord;   { BPTR }
 | |
|     seg_UC   : LongInt;
 | |
|     seg_Seg  : DWord;   { BPTR }
 | |
|     seg_Name : Array[0..3] Of Byte;
 | |
|     { * seg_Name continues * }
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   CMD_SYSTEM    = -1;
 | |
|   CMD_INTERNAL  = -2;
 | |
|   CMD_NOTLOADED = -998;
 | |
|   CMD_DISABLED  = -999;
 | |
| 
 | |
| 
 | |
| type
 | |
|   PCommandLineInterface = ^TCommandLineInterface;
 | |
|   TCommandLineInterface = packed record
 | |
|     cli_Result2       : LongInt;
 | |
|     cli_SetName       : DWord;   { BSTR }
 | |
|     cli_CommandDir    : DWord;   { BPTR }
 | |
|     cli_ReturnCode    : LongInt;
 | |
|     cli_CommandName   : DWord;   { BSTR }
 | |
|     cli_FailLevel     : LongInt;
 | |
|     cli_Prompt        : DWord;   { BSTR }
 | |
|     cli_StandardInput : DWord;   { BPTR }
 | |
|     cli_CurrentInput  : DWord;   { BPTR }
 | |
|     cli_CommandFile   : DWord;   { BSTR }
 | |
|     cli_Interactive   : LongInt;
 | |
|     cli_Background    : LongInt;
 | |
|     cli_CurrentOutput : DWord;   { BPTR }
 | |
|     cli_DefaultStack  : LongInt;
 | |
|     cli_StandardOutput: DWord;   { BPTR }
 | |
|     cli_Module        : DWord;   { BPTR }
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PDeviceList = ^TDeviceList;
 | |
|   TDeviceList = packed record
 | |
|     dl_Next      : DWord;      { BPTR }
 | |
|     dl_Type      : LongInt;
 | |
|     dl_Task      : PMsgPort;
 | |
|     dl_Lock      : DWord;      { BPTR }
 | |
|     dl_VolumeDate: TDateStamp;
 | |
|     dl_LockList  : DWord;      { BPTR }
 | |
|     dl_DiskType  : LongInt;
 | |
|     dl_unused    : LongInt;
 | |
|     dl_Name      : DWord;      { BSTR }
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PDevInfo = ^TDevInfo;
 | |
|   TDevInfo = packed record
 | |
|     dvi_Next     : DWord; { BPTR }
 | |
|     dvi_Type     : LongInt;
 | |
|     dvi_Task     : Pointer;
 | |
|     dvi_Lock     : DWord; { BPTR }
 | |
|     dvi_Handler  : DWord; { BSTR }
 | |
|     dvi_StackSize: LongInt;
 | |
|     dvi_Priority : LongInt;
 | |
|     dvi_Startup  : LongInt;
 | |
|     dvi_SegList  : DWord; { BPTR }
 | |
|     dvi_GlobVec  : DWord; { BPTR }
 | |
|     dvi_Name     : DWord; { BSTR }
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PAssignList = ^TAssignList;
 | |
|   TAssignList = packed record
 | |
|     al_Next: PAssignList;
 | |
|     al_Lock: DWord;       { BPTR }
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PDOSList = ^TDOSList;
 | |
|   TDOSList = packed record
 | |
|     dol_Next: DWord;    { BPTR }
 | |
|     dol_Type: LongInt;
 | |
|     dol_Task: PMsgPort;
 | |
|     dol_Lock: DWord;    { BPTR }
 | |
|     case Byte of
 | |
|     0: ( dol_handler : record
 | |
|            dol_Handler  : DWord;    { BSTR }
 | |
|            dol_StackSize: LongInt;
 | |
|            dol_Priority : LongInt;
 | |
|            dol_Startup  : DWord;
 | |
|            dol_SegList  : DWord;    { BPTR }
 | |
|            dol_GlobVec  : DWord;    { BPTR }
 | |
|          end;
 | |
|        );
 | |
|     1: ( dol_volume : record
 | |
|            dol_VolumeDate: TDateStamp;
 | |
|            dol_LockList  : DWord;   { BPTR }
 | |
|            dol_DiskType  : LongInt;
 | |
|          end;
 | |
|        );
 | |
|     2: ( dol_assign : record
 | |
|            dol_AssignName: PChar;
 | |
|            dol_List      : PAssignList;
 | |
|          end;
 | |
|        );
 | |
|     3: ( dol_Misc: array[0..23] of Byte;
 | |
|          dol_Name: DWord;    { BPTR }
 | |
|        );
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   DLT_DEVICE     = 0;
 | |
|   DLT_DIRECTORY  = 1;
 | |
|   DLT_VOLUME     = 2;
 | |
|   DLT_LATE       = 3;
 | |
|   DLT_NONBINDING = 4;
 | |
|   DLT_PRIVATE    = -1;
 | |
| 
 | |
| 
 | |
| type
 | |
|   PDevProc = ^TDevProc;
 | |
|   TDevProc = packed record
 | |
|     dvp_Port   : PMsgPort;
 | |
|     dvp_Lock   : DWord;    { BPTR }
 | |
|     dvp_Flags  : DWord;
 | |
|     dvp_DevNode: PDOSList;
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   DVPB_UNLOCK = 0;
 | |
|   DVPF_UNLOCK = (1 Shl DVPB_UNLOCK);
 | |
| 
 | |
|   DVPB_ASSIGN = 1;
 | |
|   DVPF_ASSIGN = (1 Shl DVPB_ASSIGN);
 | |
| 
 | |
| const
 | |
|   LDB_READ    = 0;
 | |
|   LDF_READ    = (1 Shl LDB_READ);
 | |
| 
 | |
|   LDB_WRITE   = 1;
 | |
|   LDF_WRITE   = (1 Shl LDB_WRITE);
 | |
| 
 | |
|   LDB_DEVICES = 2;
 | |
|   LDF_DEVICES = (1 Shl LDB_DEVICES);
 | |
| 
 | |
|   LDB_VOLUMES = 3;
 | |
|   LDF_VOLUMES = (1 Shl LDB_VOLUMES);
 | |
| 
 | |
|   LDB_ASSIGNS = 4;
 | |
|   LDF_ASSIGNS = (1 Shl LDB_ASSIGNS);
 | |
| 
 | |
|   LDB_ENTRY   = 5;
 | |
|   LDF_ENTRY   = (1 Shl LDB_ENTRY);
 | |
| 
 | |
|   LDB_DELETE  = 6;
 | |
|   LDF_DELETE  = (1 Shl LDB_DELETE);
 | |
| 
 | |
|   LDF_ALL     = (LDF_DEVICES Or LDF_VOLUMES Or LDF_ASSIGNS);
 | |
| 
 | |
| 
 | |
| type
 | |
|   PFileLock = ^TFileLock;
 | |
|   TFileLock = packed record
 | |
|     fl_Link  : DWord;   { BPTR }
 | |
|     fl_Key   : LongInt;
 | |
|     fl_Access: LongInt;
 | |
|     fl_Task  : PMsgPort;
 | |
|     fl_Volume: DWord;   { BPTR }
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   REPORT_STREAM = 0;
 | |
|   REPORT_TASK   = 1;
 | |
|   REPORT_LOCK   = 2;
 | |
|   REPORT_VOLUME = 3;
 | |
|   REPORT_INSERT = 4;
 | |
| 
 | |
| const
 | |
|   ABORT_DISK_ERROR = 296;
 | |
|   ABORT_BUSY       = 288;
 | |
| 
 | |
| const
 | |
|   RUN_EXECUTE       = -1;
 | |
|   RUN_SYSTEM        = -2;
 | |
|   RUN_SYSTEM_ASYNCH = -3;
 | |
| 
 | |
| const
 | |
|   ST_ROOT      = 1;
 | |
|   ST_USERDIR   = 2;
 | |
|   ST_SOFTLINK  = 3;
 | |
|   ST_LINKDIR   = 4;
 | |
|   ST_FILE      = -3;
 | |
|   ST_LINKFILE  = -4;
 | |
|   ST_PIPEFILE  = -5;
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos asl definitions
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| type
 | |
|   PAChain = ^TAChain;
 | |
|   TAChain = packed record
 | |
|     an_Child : PAChain;
 | |
|     an_Parent: PAChain;
 | |
|     an_Lock  : DWord;   { BPTR }
 | |
|     an_Info  : TFileInfoBlock;
 | |
|     an_Flags : ShortInt;
 | |
|     an_String: Array[0..0] Of Char;
 | |
|     { * an_String continues * }
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PAnchorPath = ^TAnchorPath;
 | |
|   TAnchorPath = packed record
 | |
|     case Byte of
 | |
|     0 : ( ap_First: PAChain;
 | |
|           ap_Last : PAChain;
 | |
|         );
 | |
|     1 : ( ap_Base      : PAChain;
 | |
|           ap_Current   : PAChain;
 | |
|           ap_BreakBits : LongInt;
 | |
|           ap_FoundBreak: LongInt;
 | |
|           ap_Flags     : ShortInt;
 | |
|           ap_Reserved  : ShortInt;
 | |
|           ap_Strlen    : SmallInt;
 | |
|           ap_Info      : TFileInfoBlock;
 | |
|           ap_Buf       : Array[0..0] of Char;
 | |
|           { * an_Buf continues * }
 | |
|         );
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   APB_DOWILD       = 0;
 | |
|   APF_DOWILD       = (1 Shl APB_DOWILD);
 | |
| 
 | |
|   APB_ITSWILD      = 1;
 | |
|   APF_ITSWILD      = (1 Shl APB_ITSWILD);
 | |
| 
 | |
|   APB_DODIR        = 2;
 | |
|   APF_DODIR        = (1 Shl APB_DODIR);
 | |
| 
 | |
|   APB_DIDDIR       = 3;
 | |
|   APF_DIDDIR       = (1 Shl APB_DIDDIR);
 | |
| 
 | |
|   APB_NOMEMERR     = 4;
 | |
|   APF_NOMEMERR     = (1 Shl APB_NOMEMERR);
 | |
| 
 | |
|   APB_DODOT        = 5;
 | |
|   APF_DODOT        = (1 Shl APB_DODOT);
 | |
| 
 | |
|   APB_DirChanged   = 6;
 | |
|   APF_DirChanged   = (1 Shl APB_DirChanged);
 | |
| 
 | |
|   APB_FollowHLinks = 7;
 | |
|   APF_FollowHLinks = (1 Shl APB_FollowHLinks);
 | |
| 
 | |
| const
 | |
|   APSB_EXTENDED        = 15;
 | |
|   APSF_EXTENDED        = (1 Shl APSB_EXTENDED);
 | |
| 
 | |
|   APEB_DoMultiAssigns  = 0;
 | |
|   APEF_DoMultiAssigns  = (1 Shl APEB_DoMultiAssigns);
 | |
| 
 | |
|   APEB_FutureExtension = 7;
 | |
|   APEF_FutureExtension = (1 Shl APEB_FutureExtension);
 | |
| 
 | |
| const
 | |
|   DDB_PatternBit  = 0;
 | |
|   DDF_PatternBit  = (1 Shl DDB_PatternBit);
 | |
| 
 | |
|   DDB_ExaminedBit = 1;
 | |
|   DDF_ExaminedBit = (1 Shl DDB_ExaminedBit);
 | |
| 
 | |
|   DDB_Completed   = 2;
 | |
|   DDF_Completed   = (1 Shl DDB_Completed);
 | |
| 
 | |
|   DDB_AllBit      = 3;
 | |
|   DDF_AllBit      = (1 Shl DDB_AllBit);
 | |
| 
 | |
|   DDB_Single      = 4;
 | |
|   DDF_Single      = (1 Shl DDB_Single);
 | |
| 
 | |
| const
 | |
|   P_ANY      = $80;
 | |
|   P_SINGLE   = $81;
 | |
|   P_ORSTART  = $82;
 | |
|   P_ORNEXT   = $83;
 | |
|   P_OREND    = $84;
 | |
|   P_NOT      = $85;
 | |
|   P_NOTEND   = $86;
 | |
|   P_NOTCLASS = $87;
 | |
|   P_CLASS    = $88;
 | |
|   P_REPBEG   = $89;
 | |
|   P_REPEND   = $8A;
 | |
|   P_STOP     = $8B;
 | |
| 
 | |
| const
 | |
|   COMPLEX_BIT = 1;
 | |
|   EXAMINE_BIT = 2;
 | |
| 
 | |
| const
 | |
|   ERROR_BUFFER_OVERFLOW = 303;
 | |
|   ERROR_BREAK           = 304;
 | |
|   ERROR_NOT_EXECUTABLE  = 305;
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos hunk definitions
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| const
 | |
|   HUNK_UNIT         = 999;
 | |
|   HUNK_NAME         = 1000;
 | |
|   HUNK_CODE         = 1001;
 | |
|   HUNK_DATA         = 1002;
 | |
|   HUNK_BSS          = 1003;
 | |
| 
 | |
|   HUNK_RELOC32      = 1004;
 | |
|   HUNK_ABSRELOC32   = HUNK_RELOC32;
 | |
| 
 | |
|   HUNK_RELOC16      = 1005;
 | |
|   HUNK_RELRELOC16   = HUNK_RELOC16;
 | |
| 
 | |
|   HUNK_RELOC8       = 1006;
 | |
|   HUNK_RELRELOC8    = HUNK_RELOC8;
 | |
| 
 | |
|   HUNK_EXT          = 1007;
 | |
|   HUNK_SYMBOL       = 1008;
 | |
|   HUNK_DEBUG        = 1009;
 | |
|   HUNK_END          = 1010;
 | |
|   HUNK_HEADER       = 1011;
 | |
| 
 | |
|   HUNK_OVERLAY      = 1013;
 | |
|   HUNK_BREAK        = 1014;
 | |
| 
 | |
|   HUNK_DREL32       = 1015;
 | |
|   HUNK_DREL16       = 1016;
 | |
|   HUNK_DREL8        = 1017;
 | |
| 
 | |
|   HUNK_LIB          = 1018;
 | |
|   HUNK_INDEX        = 1019;
 | |
| 
 | |
|   HUNK_RELOC32SHORT = 1020;
 | |
| 
 | |
|   HUNK_RELRELOC32   = 1021;
 | |
|   HUNK_ABSRELOC16   = 1022;
 | |
| 
 | |
| const
 | |
|   HUNKB_ADVISORY = 29;
 | |
|   HUNKB_CHIP     = 30;
 | |
|   HUNKB_FAST     = 31;
 | |
| 
 | |
|   HUNKF_ADVISORY = (1 Shl HUNKB_ADVISORY);
 | |
|   HUNKF_CHIP     = (1 Shl HUNKB_CHIP);
 | |
|   HUNKF_FAST     = (1 Shl HUNKB_FAST);
 | |
| 
 | |
| const
 | |
|   EXT_SYMB      = 0;
 | |
|   EXT_DEF       = 1;
 | |
|   EXT_ABS       = 2;
 | |
|   EXT_RES       = 3;
 | |
| 
 | |
|   EXT_REF32     = 129;
 | |
|   EXT_ABSREF32  = EXT_REF32;
 | |
| 
 | |
|   EXT_COMMON    = 130;
 | |
|   EXT_ABSCOMMON = EXT_COMMON;
 | |
| 
 | |
|   EXT_REF16     = 131;
 | |
|   EXT_RELREF16  = EXT_REF16;
 | |
| 
 | |
|   EXT_REF8      = 132;
 | |
|   EXT_RELREF8   = EXT_REF8;
 | |
| 
 | |
|   EXT_DEXT32    = 133;
 | |
|   EXT_DEXT16    = 134;
 | |
|   EXT_DEXT8     = 135;
 | |
| 
 | |
|   EXT_RELREF32  = 136;
 | |
|   EXT_RELCOMMON = 137;
 | |
| 
 | |
|   EXT_ABSREF16  = 138;
 | |
| 
 | |
|   EXT_ABSREF8   = 139;
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos ExAll definitions
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| const
 | |
|   ED_NAME       = 1;
 | |
|   ED_TYPE       = 2;
 | |
|   ED_SIZE       = 3;
 | |
|   ED_PROTECTION = 4;
 | |
|   ED_DATE       = 5;
 | |
|   ED_COMMENT    = 6;
 | |
|   ED_OWNER      = 7;
 | |
| 
 | |
| 
 | |
| type
 | |
|   PExAllData = ^TExAllData;
 | |
|   TExAllData = packed record
 | |
|     ed_Next    : PExAllData;
 | |
|     ed_Name    : PChar;
 | |
|     ed_Type    : LongInt;
 | |
|     ed_Size    : Cardinal;
 | |
|     ed_Prot    : Cardinal;
 | |
|     ed_Days    : Cardinal;
 | |
|     ed_Mins    : Cardinal;
 | |
|     ed_Ticks   : Cardinal;
 | |
|     ed_Comment : PChar;
 | |
|     ed_OwnerUID: Word;
 | |
|     ed_OwnerGID: Word;
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PExAllControl = ^TExAllControl;
 | |
|   TexAllControl = packed record
 | |
|     eac_Entries    : Cardinal;
 | |
|     eac_LastKey    : Cardinal;
 | |
|     eac_MatchString: PChar;
 | |
|     eac_MatchFunc  : PHook;
 | |
| 
 | |
|   end;
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos record definitions
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| const
 | |
|   REC_EXCLUSIVE       = 0;
 | |
|   REC_EXCLUSIVE_IMMED = 1;
 | |
|   REC_SHARED          = 2;
 | |
|   REC_SHARED_IMMED    = 3;
 | |
| 
 | |
| 
 | |
| type
 | |
|   PRecordLock = ^TRecordLock;
 | |
|   TRecordLock = packed record
 | |
|     rec_FH    : LongInt;
 | |
|     rec_Offset: Cardinal;
 | |
|     rec_Length: Cardinal;
 | |
|     rec_Mode  : Cardinal;
 | |
|   end;
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos tag definitions (V50)
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| const
 | |
|   SYS_Dummy       = (TAG_USER + 32);
 | |
|   SYS_Input       = (SYS_Dummy + 1);
 | |
|   SYS_Output      = (SYS_Dummy + 2);
 | |
|   SYS_Asynch      = (SYS_Dummy + 3);
 | |
|   SYS_UserShell   = (SYS_Dummy + 4);
 | |
|   SYS_CustomShell = (SYS_Dummy + 5);
 | |
| 
 | |
|   { *** V50 *** }
 | |
|   SYS_FilterTags  = (SYS_Dummy + 6);   { * filters the tags passed down to CreateNewProc(), default: TRUE * }
 | |
| 
 | |
| const
 | |
|   NP_Dummy         = (TAG_USER + 1000);
 | |
|   NP_Seglist       = (NP_Dummy + 1);
 | |
|   NP_FreeSeglist   = (NP_Dummy + 2);
 | |
|   NP_Entry         = (NP_Dummy + 3);
 | |
|   NP_Input         = (NP_Dummy + 4);
 | |
|   NP_Output        = (NP_Dummy + 5);
 | |
|   NP_CloseInput    = (NP_Dummy + 6);
 | |
|   NP_CloseOutput   = (NP_Dummy + 7);
 | |
|   NP_Error         = (NP_Dummy + 8);
 | |
|   NP_CloseError    = (NP_Dummy + 9);
 | |
|   NP_CurrentDir    = (NP_Dummy + 10);
 | |
|   NP_StackSize     = (NP_Dummy + 11);
 | |
|   NP_Name          = (NP_Dummy + 12);
 | |
|   NP_Priority      = (NP_Dummy + 13);
 | |
|   NP_ConsoleTask   = (NP_Dummy + 14);
 | |
|   NP_WindowPtr     = (NP_Dummy + 15);
 | |
|   NP_HomeDir       = (NP_Dummy + 16);
 | |
|   NP_CopyVars      = (NP_Dummy + 17);
 | |
|   NP_Cli           = (NP_Dummy + 18);
 | |
|   NP_Path          = (NP_Dummy + 19);
 | |
|   NP_CommandName   = (NP_Dummy + 20);
 | |
|   NP_Arguments     = (NP_Dummy + 21);
 | |
| 
 | |
|   NP_NotifyOnDeath = (NP_Dummy + 22);
 | |
|   NP_Synchronous   = (NP_Dummy + 23);
 | |
|   NP_ExitCode      = (NP_Dummy + 24);
 | |
|   NP_ExitData      = (NP_Dummy + 25);
 | |
| 
 | |
|   { *** V50 *** }
 | |
|   NP_SeglistArray  = (NP_Dummy + 26);
 | |
|   NP_UserData      = (NP_Dummy + 27);
 | |
|   NP_StartupMsg    = (NP_Dummy + 28);  { * PMessage, ReplyMsg'd at exit * }
 | |
|   NP_TaskMsgPort   = (NP_Dummy + 29);  { * ^PMsgPort, create MsgPort, automagic delete * }
 | |
| 
 | |
|   NP_CodeType      = (NP_Dummy + 100);
 | |
|   NP_PPC_Arg1      = (NP_Dummy + 101);
 | |
|   NP_PPC_Arg2      = (NP_Dummy + 102);
 | |
|   NP_PPC_Arg3      = (NP_Dummy + 103);
 | |
|   NP_PPC_Arg4      = (NP_Dummy + 104);
 | |
|   NP_PPC_Arg5      = (NP_Dummy + 105);
 | |
|   NP_PPC_Arg6      = (NP_Dummy + 106);
 | |
|   NP_PPC_Arg7      = (NP_Dummy + 107);
 | |
|   NP_PPC_Arg8      = (NP_Dummy + 108);
 | |
|   NP_PPCStackSize  = (NP_Dummy + 109);
 | |
| 
 | |
| const
 | |
|   ADO_Dummy       = (TAG_USER + 2000);
 | |
|   ADO_FH_Mode     = (ADO_Dummy + 1);
 | |
| 
 | |
|   ADO_DirLen      = (ADO_Dummy + 2);
 | |
|   ADO_CommNameLen = (ADO_Dummy + 3);
 | |
|   ADO_CommFileLen = (ADO_Dummy + 4);
 | |
|   ADO_PromptLen   = (ADO_Dummy + 5);
 | |
| 
 | |
|   { *** V50 *** }
 | |
|   ADDS_Dummy      = (TAG_USER + 3000);
 | |
|   ADDS_Name       = (ADDS_Dummy + 1);  { * Segment name * }
 | |
|   ADDS_Seglist    = (ADDS_Dummy + 2);  { * Seglist for this segment * }
 | |
|   ADDS_Filename   = (ADDS_Dummy + 3);  { * Name of the file to load when needed. Ignored if Seglist is given. * }
 | |
|   ADDS_Type       = (ADDS_Dummy + 4);  { * Segment type * }
 | |
| 
 | |
| const
 | |
|   FNDS_Dummy      = (TAG_USER + 3100);
 | |
|   FNDS_Name       = (FNDS_Dummy + 1);  { * Segment name * }
 | |
|   FNDS_From       = (FNDS_Dummy + 2);  { * Segment to start from * }
 | |
|   FNDS_System     = (FNDS_Dummy + 3);  { * Look for a system segment ? * }
 | |
|   FNDS_Load       = (FNDS_Dummy + 4);  { * Load the seglist if needed ? (Default: TRUE) * }
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos stdio definitions
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| const
 | |
|  BUF_LINE = 0;
 | |
|  BUF_FULL = 1;
 | |
|  BUF_NONE = 2;
 | |
| 
 | |
| const
 | |
|  ENDSTREAMCH = -1;
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos env-var definitions
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| type
 | |
|   PLocalVar = ^TLocalVar;
 | |
|   TLocalVar = packed record
 | |
|     lv_Node : TNode;
 | |
|     lv_Flags: Word;
 | |
|     lv_Value: PChar;
 | |
|     lv_Len  : Cardinal;
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   LV_VAR   = 0;
 | |
|   LV_ALIAS = 1;
 | |
| 
 | |
| const
 | |
|   LVB_IGNORE         = 7;
 | |
|   LVF_IGNORE         = (1 Shl LVB_IGNORE);
 | |
| 
 | |
|   GVB_GLOBAL_ONLY    = 8;
 | |
|   GVF_GLOBAL_ONLY    = (1 Shl GVB_GLOBAL_ONLY);
 | |
| 
 | |
|   GVB_LOCAL_ONLY     = 9;
 | |
|   GVF_LOCAL_ONLY     = (1 Shl GVB_LOCAL_ONLY);
 | |
| 
 | |
|   GVB_BINARY_VAR     = 10;
 | |
|   GVF_BINARY_VAR     = (1 Shl GVB_BINARY_VAR);
 | |
| 
 | |
|   GVB_DONT_NULL_TERM = 11;
 | |
|   GVF_DONT_NULL_TERM = (1 Shl GVB_DONT_NULL_TERM);
 | |
| 
 | |
|   GVB_SAVE_VAR       = 12;
 | |
|   GVF_SAVE_VAR       = (1 Shl GVB_SAVE_VAR);
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos ReadArgs definitions
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| type
 | |
|   PCSource = ^TCSource;
 | |
|   TCSource = packed record
 | |
|     CS_Buffer: PChar;
 | |
|     CS_Length: LongInt;
 | |
|     CS_CurChr: LongInt;
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PRDArgs = ^TRDArgs;
 | |
|   TRDArgs = packed record
 | |
|     RDA_Source : TCSource;
 | |
|     RDA_DAList : LongInt;
 | |
|     RDA_Buffer : PChar;
 | |
|     RDA_BufSiz : LongInt;
 | |
|     RDA_ExtHelp: PChar;
 | |
|     RDA_Flags  : LongInt;
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   RDAB_STDIN    = 0;
 | |
|   RDAF_STDIN    = (1 Shl RDAB_STDIN);
 | |
| 
 | |
|   RDAB_NOALLOC  = 1;
 | |
|   RDAF_NOALLOC  = (1 Shl RDAB_NOALLOC);
 | |
| 
 | |
|   RDAB_NOPROMPT = 2;
 | |
|   RDAF_NOPROMPT = (1 Shl RDAB_NOPROMPT);
 | |
| 
 | |
| const
 | |
|   MAX_TEMPLATE_ITEMS = 100;
 | |
|   MAX_MULTIARGS      = 128;
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos filehandler definitions
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| type
 | |
|   PDosEnvec = ^TDosEnvec;
 | |
|   TDosEnvec = packed record
 | |
|     de_TableSize     : Cardinal;
 | |
|     de_SizeBlock     : Cardinal;
 | |
|     de_SecOrg        : Cardinal;
 | |
|     de_Surfaces      : Cardinal;
 | |
|     de_SectorPerBlock: Cardinal;
 | |
|     de_BlocksPerTrack: Cardinal;
 | |
|     de_Reserved      : Cardinal;
 | |
|     de_PreAlloc      : Cardinal;
 | |
|     de_Interleave    : Cardinal;
 | |
|     de_LowCyl        : Cardinal;
 | |
|     de_HighCyl       : Cardinal;
 | |
|     de_NumBuffers    : Cardinal;
 | |
|     de_BufMemType    : Cardinal;
 | |
|     de_MaxTransfer   : Cardinal;
 | |
|     de_Mask          : Cardinal;
 | |
|     de_BootPri       : LongInt;
 | |
|     de_DosType       : Cardinal;
 | |
|     de_Baud          : Cardinal;
 | |
|     de_Control       : Cardinal;
 | |
|     de_BootBlocks    : Cardinal;
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   DE_TABLESIZE    = 0;
 | |
|   DE_SIZEBLOCK    = 1;
 | |
|   DE_SECORG       = 2;
 | |
|   DE_NUMHEADS     = 3;
 | |
|   DE_SECSPERBLK   = 4;
 | |
|   DE_BLKSPERTRACK = 5;
 | |
|   DE_RESERVEDBLKS = 6;
 | |
|   DE_PREFAC       = 7;
 | |
|   DE_INTERLEAVE   = 8;
 | |
|   DE_LOWCYL       = 9;
 | |
|   DE_UPPERCYL     = 10;
 | |
|   DE_NUMBUFFERS   = 11;
 | |
|   DE_MEMBUFTYPE   = 12;
 | |
|   DE_BUFMEMTYPE   = 12;
 | |
|   DE_MAXTRANSFER  = 13;
 | |
|   DE_MASK         = 14;
 | |
|   DE_BOOTPRI      = 15;
 | |
|   DE_DOSTYPE      = 16;
 | |
|   DE_BAUD         = 17;
 | |
|   DE_CONTROL      = 18;
 | |
|   DE_BOOTBLOCKS   = 19;
 | |
| 
 | |
| 
 | |
| type
 | |
|   PFileSysStartupMsg = ^TFileSysStartupMsg;
 | |
|   TFileSysStartupMsg = packed record
 | |
|     fssm_Unit   : Cardinal;
 | |
|     fssm_Device : LongInt;
 | |
|     fssm_Environ: LongInt;
 | |
|     fssm_Flags  : Cardinal;
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PDeviceNode = ^TDeviceNode;
 | |
|   TDeviceNode = packed record
 | |
|     dn_Next     : LongInt;
 | |
|     dn_Type     : Cardinal;
 | |
|     dn_Task     : PMsgPort;
 | |
|     dn_Lock     : LongInt;
 | |
|     dn_Handler  : LongInt;
 | |
|     dn_StackSize: Cardinal;
 | |
|     dn_Priority : LongInt;
 | |
|     dn_Startup  : LongInt;
 | |
|     dn_SegList  : LongInt;
 | |
|     dn_GlobalVec: LongInt;
 | |
|     dn_Name     : LongInt;
 | |
|   end;
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos notification definitions
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| const
 | |
|   NOTIFY_CLASS = $40000000;
 | |
|   NOTIFY_CODE  = $1234;
 | |
| 
 | |
| 
 | |
| type
 | |
|   PNotifyRequest = ^TNotifyRequest;
 | |
|   TNotifyRequest = packed record
 | |
|     nr_Name    : PChar;
 | |
|     nr_FullName: PChar;
 | |
|     nr_UserData: Cardinal;
 | |
|     nr_Flags   : Cardinal;
 | |
|     nr_stuff : record
 | |
|       case Byte of
 | |
|       0 : ( nr_Msg : record
 | |
|               nr_Port: PMsgPort;
 | |
|             end );
 | |
|       1 : ( nr_Signal : record
 | |
|               nr_Task     : PTask;
 | |
|               nr_SignalNum: Byte;
 | |
|               nr_pad      : Array[0..2] Of Byte;
 | |
|             end );
 | |
|     end;
 | |
|     nr_Reserved: Array[0..3] Of Cardinal;
 | |
|     nr_MsgCount: Cardinal;
 | |
|     nr_Handler : PMsgPort;
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PNotifyMessage = ^TNotifyMessage;
 | |
|   TNotifyMessage = packed record
 | |
|     nm_ExecMessage: TMessage;
 | |
|     nm_Class      : Cardinal;
 | |
|     nm_Code       : Word;
 | |
|     nm_NReq       : PNotifyRequest;
 | |
|     nm_DoNotTouch : Cardinal;
 | |
|     nm_DoNotTouch2: Cardinal;
 | |
|   end;
 | |
| 
 | |
| 
 | |
| const
 | |
|   NRB_SEND_MESSAGE   = 0;
 | |
|   NRB_SEND_SIGNAL    = 1;
 | |
|   NRB_WAIT_REPLY     = 3;
 | |
|   NRB_NOTIFY_INITIAL = 4;
 | |
| 
 | |
|   NRB_MAGIC          = 31;
 | |
| 
 | |
| const
 | |
|   NRF_SEND_MESSAGE   = (1 Shl NRB_SEND_MESSAGE);
 | |
|   NRF_SEND_SIGNAL    = (1 Shl NRB_SEND_SIGNAL);
 | |
|   NRF_WAIT_REPLY     = (1 Shl NRB_WAIT_REPLY);
 | |
|   NRF_NOTIFY_INITIAL = (1 Shl NRB_NOTIFY_INITIAL);
 | |
| 
 | |
|   NRF_MAGIC          = (1 Shl NRB_MAGIC);
 | |
| 
 | |
| const
 | |
|   NR_HANDLER_FLAGS = $ffff0000;
 | |
| 
 | |
| 
 | |
| 
 | |
| { * dos.library segtracker include
 | |
|   *********************************************************************
 | |
|   * }
 | |
| 
 | |
| 
 | |
| const
 | |
|   SEG_SEM = 'SegTracker';
 | |
| 
 | |
| 
 | |
| type
 | |
|   PSegSem = ^TSegSem;
 | |
|   TSegSem = packed record
 | |
|     seg_Semaphore: TSignalSemaphore;
 | |
|     seg_Find     : Procedure; { Name = seg_Find(REG(a0, ULONG Address), REG(a1, ULONG *SegNum), REG(a2, ULONG *Offset)) }
 | |
|     seg_List     : TMinList;
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PSegArray = ^TSegArray;
 | |
|   TSegArray = packed record
 | |
|     seg_Address: Cardinal;
 | |
|     seg_Size   : Cardinal;
 | |
|   end;
 | |
| 
 | |
| type
 | |
|   PSegNode = ^TSegNode;
 | |
|   TSegNode = packed record
 | |
|     seg_Node : TMinNode;
 | |
|     seg_Name : PChar;
 | |
|     seg_Array: Array[0..0] Of TSegArray;
 | |
|   end;
 | |
| 
 | |
| 
 | |
| 
 | 
