summaryrefslogtreecommitdiff
path: root/packages/arosunits/src/amigados.pas
diff options
context:
space:
mode:
Diffstat (limited to 'packages/arosunits/src/amigados.pas')
-rw-r--r--packages/arosunits/src/amigados.pas4560
1 files changed, 0 insertions, 4560 deletions
diff --git a/packages/arosunits/src/amigados.pas b/packages/arosunits/src/amigados.pas
deleted file mode 100644
index f34b7620ff..0000000000
--- a/packages/arosunits/src/amigados.pas
+++ /dev/null
@@ -1,4560 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
-
- A file in Amiga system run time library.
- Copyright (c) 1998-2003 by Nils Sjoholm
- member of the Amiga RTL development team.
-
- 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.
-
- **********************************************************************}
-{
- History:
- Added overlay functions for Pchar->Strings, functions
- and procedures. Now you can mix PChar and Strings e.g
- OpenLibrary('whatis.library',37). No need to cast to
- a PChar.
- 14 Jul 2000.
-
- Changed ReadArgs, removed the var for the second arg.
- Changed DOSRename from longint to a boolean.
- Aug 04 2000.
-
- Added functions and procedures with array of const.
- For use with fpc 1.0.7
-
- You have to use systemvartags. Check out that unit.
- 09 Nov 2002.
-
- Added the define use_amiga_smartlink.
- 13 Jan 2003.
-
- Update for AmigaOS 3.9.
- Added some const.
- 26 Jan 2003.
-
- Changed integer > smallint.
- 09 Feb 2003.
-
- nils.sjoholm@mailbox.swipnet.se
-}
-
-unit amigados;
-
-INTERFACE
-
-uses exec, utility, timer;
-
-Const
-
-{ Predefined Amiga DOS global constants }
-
- DOSTRUE = -1;
- DOSFALSE = 0;
-
-{ Mode parameter to Open() }
-
- MODE_OLDFILE = 1005; { Open existing file read/write
- positioned at beginning of file. }
- MODE_NEWFILE = 1006; { Open freshly created file (delete
- old file) read/write }
- MODE_READWRITE = 1004; { Open old file w/exclusive lock }
-
-{ Relative position to Seek() }
-
- OFFSET_BEGINNING = -1; { relative to Begining Of File }
- OFFSET_CURRENT = 0; { relative to Current file position }
- OFFSET_END = 1; { relative to End Of File }
-
- BITSPERBYTE = 8;
- BYTESPERLONG = 4;
- BITSPERLONG = 32;
- MAXINT = $7FFFFFFF;
- MININT = $80000000;
-
-{ Passed as type to Lock() }
-
- SHARED_LOCK = -2; { File is readable by others }
- ACCESS_READ = -2; { Synonym }
- EXCLUSIVE_LOCK = -1; { No other access allowed }
- ACCESS_WRITE = -1; { Synonym }
-
-Type
-
- FileHandle = BPTR;
- FileLock = BPTR;
-
- pDateStamp = ^tDateStamp;
- tDateStamp = record
- ds_Days : Longint; { Number of days since Jan. 1, 1978 }
- ds_Minute : Longint; { Number of minutes past midnight }
- ds_Tick : Longint; { Number of ticks past minute }
- end;
-
-Const
-
- TICKS_PER_SECOND = 50; { Number of ticks in one second }
-
-{$PACKRECORDS 4}
-Type
-
-{ Returned by Examine() and ExInfo(), must be on a 4 byte boundary }
-
- pFileInfoBlock = ^tFileInfoBlock;
- tFileInfoBlock = record
- fib_DiskKey : Longint;
- fib_DirEntryType : Longint;
- { Type of Directory. If < 0, then a plain file.
- If > 0 a directory }
- fib_FileName : Array [0..107] of Char;
- { Null terminated. Max 30 chars used for now }
- fib_Protection : Longint;
- { bit mask of protection, rwxd are 3-0. }
- fib_EntryType : Longint;
- fib_Size : Longint; { Number of bytes in file }
- fib_NumBlocks : Longint; { Number of blocks in file }
- fib_Date : tDateStamp; { Date file last changed }
- fib_Comment : Array [0..79] of Char;
- { Null terminated comment associated with file }
- fib_OwnerUID : Word;
- fib_OwnerGID : Word;
- fib_Reserved : Array [0..31] of Char;
- end;
-
-Const
-
-{ FIB stands for FileInfoBlock }
-
-{* FIBB are bit definitions, FIBF are field definitions *}
-{* Regular RWED bits are 0 == allowed. *}
-{* NOTE: GRP and OTR RWED permissions are 0 == not allowed! *}
-{* Group and Other permissions are not directly handled by the filesystem *}
-
- FIBB_OTR_READ = 15; {* Other: file is readable *}
- FIBB_OTR_WRITE = 14; {* Other: file is writable *}
- FIBB_OTR_EXECUTE = 13; {* Other: file is executable *}
- FIBB_OTR_DELETE = 12; {* Other: prevent file from being deleted *}
- FIBB_GRP_READ = 11; {* Group: file is readable *}
- FIBB_GRP_WRITE = 10; {* Group: file is writable *}
- FIBB_GRP_EXECUTE = 9; {* Group: file is executable *}
- FIBB_GRP_DELETE = 8; {* Group: prevent file from being deleted *}
-
- FIBB_SCRIPT = 6; { program is a script (execute) file }
- FIBB_PURE = 5; { program is reentrant and rexecutable}
- FIBB_ARCHIVE = 4; { cleared whenever file is changed }
- FIBB_READ = 3; { ignored by old filesystem }
- FIBB_WRITE = 2; { ignored by old filesystem }
- FIBB_EXECUTE = 1; { ignored by system, used by Shell }
- FIBB_DELETE = 0; { prevent file from being deleted }
-
- 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 = 64;
- FIBF_PURE = 32;
- FIBF_ARCHIVE = 16;
- FIBF_READ = 8;
- FIBF_WRITE = 4;
- FIBF_EXECUTE = 2;
- FIBF_DELETE = 1;
-
-{* Standard maximum length for an error string from fault. However, most *}
-{* error strings should be kept under 60 characters if possible. Don't *}
-{* forget space for the header you pass in. *}
-
- FAULT_MAX = 82;
-
-{* All BCPL data must be long Integer aligned. BCPL pointers are the long Integer
- * address (i.e byte address divided by 4 (>>2)) *}
-
-{* BCPL strings have a length in the first byte and then the characters.
- * For example: s[0]=3 s[1]=S s[2]=Y s[3]=S *}
-
-
-Type
-
-{ returned by Info(), must be on a 4 byte boundary }
-
- pInfoData = ^tInfoData;
- tInfoData = record
- id_NumSoftErrors : Longint; { number of soft errors on disk }
- id_UnitNumber : Longint; { Which unit disk is (was) mounted on }
- id_DiskState : Longint; { See defines below }
- id_NumBlocks : Longint; { Number of blocks on disk }
- id_NumBlocksUsed : Longint; { Number of block in use }
- id_BytesPerBlock : Longint;
- id_DiskType : Longint; { Disk Type code }
- id_VolumeNode : BPTR; { BCPL pointer to volume node }
- id_InUse : Longint; { Flag, zero if not in use }
- end;
-
-{$PACKRECORDS NORMAL}
-
-Const
-
-{ ID stands for InfoData }
-
- { Disk states }
-
- ID_WRITE_PROTECTED = 80; { Disk is write protected }
- ID_VALIDATING = 81; { Disk is currently being validated }
- ID_VALIDATED = 82; { Disk is consistent and writeable }
-
-CONST
- ID_NO_DISK_PRESENT = -1;
- ID_UNREADABLE_DISK = $42414400; { 'BAD\0' }
- ID_DOS_DISK = $444F5300; { 'DOS\0' }
- ID_FFS_DISK = $444F5301; { 'DOS\1' }
- ID_NOT_REALLY_DOS = $4E444F53; { 'NDOS' }
- ID_KICKSTART_DISK = $4B49434B; { 'KICK' }
- ID_MSDOS_DISK = $4d534400; { 'MSD\0' }
-
-{ Errors from IoErr(), etc. }
- 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;
-{ added for 1.4 }
- 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;
-
-{ error codes 303-305 are defined in dosasl.h }
-
-{ These are the return codes used by convention by AmigaDOS commands }
-{ See FAILAT and IF for relvance to EXECUTE files }
- RETURN_OK = 0; { No problems, success }
- RETURN_WARN = 5; { A warning only }
- RETURN_ERROR = 10; { Something wrong }
- RETURN_FAIL = 20; { Complete or severe failure}
-
-{ Bit numbers that signal you that a user has issued a break }
- SIGBREAKB_CTRL_C = 12;
- SIGBREAKB_CTRL_D = 13;
- SIGBREAKB_CTRL_E = 14;
- SIGBREAKB_CTRL_F = 15;
-
-{ Bit fields that signal you that a user has issued a break }
-{ for example: if (SetSignal(0,0) & SIGBREAKF_CTRL_C) cleanup_and_exit(); }
- SIGBREAKF_CTRL_C = 4096;
- SIGBREAKF_CTRL_D = 8192;
- SIGBREAKF_CTRL_E = 16384;
- SIGBREAKF_CTRL_F = 32768;
-
-{ Values returned by SameLock() }
- LOCK_SAME = 0;
- LOCK_SAME_HANDLER = 1; { actually same volume }
- LOCK_DIFFERENT = -1;
-
-{ types for ChangeMode() }
- CHANGE_LOCK = 0;
- CHANGE_FH = 1;
-
-{ Values for MakeLink() }
- LINK_HARD = 0;
- LINK_SOFT = 1; { softlinks are not fully supported yet }
-
-{ values returned by }
- ITEM_EQUAL = -2; { "=" Symbol }
- ITEM_ERROR = -1; { error }
- ITEM_NOTHING = 0; { *N, ;, endstreamch }
- ITEM_UNQUOTED = 1; { unquoted item }
- ITEM_QUOTED = 2; { quoted item }
-
-{ types for AllocDosObject/FreeDosObject }
- DOS_FILEHANDLE = 0; { few people should use this }
- DOS_EXALLCONTROL = 1; { Must be used to allocate this! }
- DOS_FIB = 2; { useful }
- DOS_STDPKT = 3; { for doing packet-level I/O }
- DOS_CLI = 4; { for shell-writers, etc }
- DOS_RDARGS = 5; { for ReadArgs if you pass it in }
-
-
-{
- * Data structures and equates used by the V1.4 DOS functions
- * StrtoDate() and DatetoStr()
- }
-
-{--------- String/Date structures etc }
-Type
- pDateTime = ^tDateTime;
- tDateTime = record
- dat_Stamp : tDateStamp; { DOS DateStamp }
- dat_Format, { controls appearance of dat_StrDate }
- dat_Flags : Byte; { see BITDEF's below }
- dat_StrDay, { day of the week string }
- dat_StrDate, { date string }
- dat_StrTime : STRPTR; { time string }
- END;
-
-{ You need this much room for each of the DateTime strings: }
-CONST
- LEN_DATSTRING = 16;
-
-{ flags for dat_Flags }
-
- DTB_SUBST = 0; { substitute Today, Tomorrow, etc. }
- DTF_SUBST = 1;
- DTB_FUTURE = 1; { day of the week is in future }
- DTF_FUTURE = 2;
-
-{
- * date format values
- }
-
- FORMAT_DOS = 0; { dd-mmm-yy }
- FORMAT_INT = 1; { yy-mm-dd }
- FORMAT_USA = 2; { mm-dd-yy }
- FORMAT_CDN = 3; { dd-mm-yy }
- FORMAT_MAX = FORMAT_CDN;
- FORMAT_DEF = 4; { use default format, as defined
- by locale; if locale not
- available, use FORMAT_DOS
- instead }
-
-{**********************************************************************
-************************ PATTERN MATCHING ******************************
-************************************************************************
-
-* structure expected by MatchFirst, MatchNext.
-* Allocate this structure and initialize it as follows:
-*
-* Set ap_BreakBits to the signal bits (CDEF) that you want to take a
-* break on, or NULL, if you don't want to convenience the user.
-*
-* If you want to have the FULL PATH NAME of the files you found,
-* allocate a buffer at the END of this structure, and put the size of
-* it into ap_Strlen. If you don't want the full path name, make sure
-* you set ap_Strlen to zero. In this case, the name of the file, and stats
-* are available in the ap_Info, as per usual.
-*
-* Then call MatchFirst() and then afterwards, MatchNext() with this structure.
-* You should check the return value each time (see below) and take the
-* appropriate action, ultimately calling MatchEnd() when there are
-* no more files and you are done. You can tell when you are done by
-* checking for the normal AmigaDOS return code ERROR_NO_MORE_ENTRIES.
-*
-}
-
-Type
- pAChain = ^tAChain;
- tAChain = record
- an_Child,
- an_Parent : pAChain;
- an_Lock : BPTR;
- an_Info : tFileInfoBlock;
- an_Flags : Shortint;
- an_String : Array[0..0] of Char; { FIX!! }
- END;
-
- pAnchorPath = ^tAnchorPath;
- tAnchorPath = record
- case smallint of
- 0 : (
- ap_First : pAChain;
- ap_Last : pAChain;
- );
- 1 : (
- ap_Base, { pointer to first anchor }
- ap_Current : pAChain; { pointer to last anchor }
- ap_BreakBits, { Bits we want to break on }
- ap_FoundBreak : Longint; { Bits we broke on. Also returns ERROR_BREAK }
- ap_Flags : Shortint; { New use for extra Integer. }
- ap_Reserved : Shortint;
- ap_Strlen : smallint; { This is what ap_Length used to be }
- ap_Info : tFileInfoBlock;
- ap_Buf : Array[0..0] of Char; { Buffer for path name, allocated by user !! }
- { FIX! }
- );
- END;
-
-
-CONST
- APB_DOWILD = 0; { User option ALL }
- APF_DOWILD = 1;
-
- APB_ITSWILD = 1; { Set by MatchFirst, used by MatchNext }
- APF_ITSWILD = 2; { Application can test APB_ITSWILD, too }
- { (means that there's a wildcard }
- { in the pattern after calling }
- { MatchFirst). }
-
- APB_DODIR = 2; { Bit is SET IF a DIR node should be }
- APF_DODIR = 4; { entered. Application can RESET this }
- { bit after MatchFirst/MatchNext to AVOID }
- { entering a dir. }
-
- APB_DIDDIR = 3; { Bit is SET for an "expired" dir node. }
- APF_DIDDIR = 8;
-
- APB_NOMEMERR = 4; { Set on memory error }
- APF_NOMEMERR = 16;
-
- APB_DODOT = 5; { IF set, allow conversion of '.' to }
- APF_DODOT = 32; { CurrentDir }
-
- APB_DirChanged = 6; { ap_Current->an_Lock changed }
- APF_DirChanged = 64; { since last MatchNext call }
-
-
- DDB_PatternBit = 0;
- DDF_PatternBit = 1;
- DDB_ExaminedBit = 1;
- DDF_ExaminedBit = 2;
- DDB_Completed = 2;
- DDF_Completed = 4;
- DDB_AllBit = 3;
- DDF_AllBit = 8;
- DDB_Single = 4;
- DDF_Single = 16;
-
-{
- * Constants used by wildcard routines, these are the pre-parsed tokens
- * referred to by pattern match. It is not necessary for you to do
- * anything about these, MatchFirst() MatchNext() handle all these for you.
- }
-
- P_ANY = $80; { Token for '*' or '#? }
- P_SINGLE = $81; { Token for '?' }
- P_ORSTART = $82; { Token for '(' }
- P_ORNEXT = $83; { Token for '|' }
- P_OREND = $84; { Token for ')' }
- P_NOT = $85; { Token for '~' }
- P_NOTEND = $86; { Token for }
- P_NOTCLASS = $87; { Token for '^' }
- P_CLASS = $88; { Token for '[]' }
- P_REPBEG = $89; { Token for '[' }
- P_REPEND = $8A; { Token for ']' }
- P_STOP = $8B; { token to force end of evaluation }
-
-{ Values for an_Status, NOTE: These are the actual bit numbers }
-
- COMPLEX_BIT = 1; { Parsing complex pattern }
- EXAMINE_BIT = 2; { Searching directory }
-
-{
- * Returns from MatchFirst(), MatchNext()
- * You can also get dos error returns, such as ERROR_NO_MORE_ENTRIES,
- * these are in the dos.h file.
- }
-
- ERROR_BUFFER_OVERFLOW = 303; { User OR internal buffer overflow }
- ERROR_BREAK = 304; { A break character was received }
- ERROR_NOT_EXECUTABLE = 305; { A file has E bit cleared }
-
-{ hunk types }
- HUNK_UNIT = 999 ;
- HUNK_NAME = 1000;
- HUNK_CODE = 1001;
- HUNK_DATA = 1002;
- HUNK_BSS = 1003;
- HUNK_RELOC32 = 1004;
- HUNK_RELOC16 = 1005;
- HUNK_RELOC8 = 1006;
- 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_ext sub-types }
- EXT_SYMB = 0 ; { symbol table }
- EXT_DEF = 1 ; { relocatable definition }
- EXT_ABS = 2 ; { Absolute definition }
- EXT_RES = 3 ; { no longer supported }
- EXT_REF32 = 129; { 32 bit reference to symbol }
- EXT_COMMON = 130; { 32 bit reference to COMMON block }
- EXT_REF16 = 131; { 16 bit reference to symbol }
- EXT_REF8 = 132; { 8 bit reference to symbol }
- EXT_DEXT32 = 133; { 32 bit data releative reference }
- EXT_DEXT16 = 134; { 16 bit data releative reference }
- EXT_DEXT8 = 135; { 8 bit data releative reference }
-
-
-Type
-
-{ All DOS processes have this structure }
-{ Create and Device Proc returns pointer to the MsgPort in this structure }
-{ dev_proc = Address(smallint(DeviceProc()) - SizeOf(Task)) }
-
- pProcess = ^tProcess;
- tProcess = record
- pr_Task : tTask;
- pr_MsgPort : tMsgPort; { This is BPTR address from DOS functions }
- pr_Pad : smallint; { Remaining variables on 4 byte boundaries }
- pr_SegList : BPTR; { 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 (BCPL) }
- pr_TaskNum : Longint; { CLI task number of zero if not a CLI }
- pr_StackBase : BPTR; { Ptr to high memory end of process stack }
- pr_Result2 : Longint; { Value of secondary result from last call }
- pr_CurrentDir : BPTR; { Lock associated with current directory }
- pr_CIS : BPTR; { Current CLI Input Stream }
- pr_COS : BPTR; { Current CLI Output Stream }
- pr_ConsoleTask : Pointer; { Console handler process for current window}
- pr_FileSystemTask : Pointer; { File handler process for current drive }
- pr_CLI : BPTR; { pointer to ConsoleLineInterpreter }
- 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 }
- { following definitions are new with 2.0 }
- pr_HomeDir : BPTR; { Home directory of executing program }
- pr_Flags : Longint; { flags telling dos about process }
- pr_ExitCode : Pointer; { code to call on exit of program OR NULL }
- pr_ExitData : Longint; { Passed as an argument to pr_ExitCode. }
- pr_Arguments : STRPTR; { Arguments passed to the process at start }
- pr_LocalVars : tMinList; { Local environment variables }
- pr_ShellPrivate : ULONG; { for the use of the current shell }
- pr_CES : BPTR; { Error stream - IF NULL, use pr_COS }
- end;
-
-{
- * Flags for pr_Flags
- }
-CONST
- PRB_FREESEGLIST = 0 ;
- PRF_FREESEGLIST = 1 ;
- PRB_FREECURRDIR = 1 ;
- PRF_FREECURRDIR = 2 ;
- PRB_FREECLI = 2 ;
- PRF_FREECLI = 4 ;
- PRB_CLOSEINPUT = 3 ;
- PRF_CLOSEINPUT = 8 ;
- PRB_CLOSEOUTPUT = 4 ;
- PRF_CLOSEOUTPUT = 16;
- PRB_FREEARGS = 5 ;
- PRF_FREEARGS = 32;
-
-
-{ The long smallint address (BPTR) of this structure is returned by
- * Open() and other routines that return a file. You need only worry
- * about this struct to do async io's via PutMsg() instead of
- * standard file system calls }
-
-Type
-
- pFileHandle = ^tFileHandle;
- tFileHandle = record
- fh_Link : pMessage; { EXEC message }
- fh_Port : pMsgPort; { Reply port for the packet }
- fh_Type : pMsgPort; { Port to do PutMsg() to
- Address is negative if a plain file }
- fh_Buf : Longint;
- fh_Pos : Longint;
- fh_End : Longint;
- fh_Func1 : Longint;
- fh_Func2 : Longint;
- fh_Func3 : Longint;
- fh_Arg1 : Longint;
- fh_Arg2 : Longint;
- end;
-
-{ This is the extension to EXEC Messages used by DOS }
-
- pDosPacket = ^tDosPacket;
- tDosPacket = record
- dp_Link : pMessage; { EXEC message }
- dp_Port : pMsgPort; { Reply port for the packet }
- { Must be filled in each send. }
- case smallint of
- 0 : (
- dp_Action : Longint;
- dp_Status : Longint;
- dp_Status2 : Longint;
- dp_BufAddr : Longint;
- );
- 1 : (
- dp_Type : Longint; { See ACTION_... below and
- * 'R' means Read, 'W' means Write to the
- * file system }
- dp_Res1 : Longint; { For file system calls this is the result
- * that would have been returned by the
- * function, e.g. Write ('W') returns actual
- * length written }
- dp_Res2 : Longint; { For file system calls this is what would
- * have been returned by IoErr() }
- dp_Arg1 : Longint;
- dp_Arg2 : Longint;
- dp_Arg3 : Longint;
- dp_Arg4 : Longint;
- dp_Arg5 : Longint;
- dp_Arg6 : Longint;
- dp_Arg7 : Longint;
- );
- end;
-
-
-{ A Packet does not require the Message to be before it in memory, but
- * for convenience it is useful to associate the two.
- * Also see the function init_std_pkt for initializing this structure }
-
- pStandardPacket = ^tStandardPacket;
- tStandardPacket = record
- sp_Msg : tMessage;
- sp_Pkt : tDosPacket;
- end;
-
-
-Const
-
-{ Packet types }
- ACTION_NIL = 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 = $57; { 'W' }
- ACTION_READ = $52; { '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_SCREEN_MODE = 994;
-
- ACTION_READ_RETURN = 1001;
- ACTION_WRITE_RETURN = 1002;
- ACTION_SEEK = 1008;
- ACTION_FINDUPDATE = 1004;
- ACTION_FINDINPUT = 1005;
- ACTION_FINDOUTPUT = 1006;
- ACTION_END = 1007;
- ACTION_TRUNCATE = 1022; { fast file system only }
- ACTION_WRITE_PROTECT = 1023; { fast file system only }
-
-{ new 2.0 packets }
- ACTION_SAME_LOCK = 40;
- ACTION_CHANGE_SIGNAL = 995;
- ACTION_FORMAT = 1020;
- ACTION_MAKE_LINK = 1021;
-{}
-{}
- 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_LOCK_RECORD = 2008;
- ACTION_FREE_RECORD = 2009;
-
- ACTION_ADD_NOTIFY = 4097;
- ACTION_REMOVE_NOTIFY = 4098;
-
- {* Added in V39: *}
- ACTION_EXAMINE_ALL_END = 1035;
- ACTION_SET_OWNER = 1036;
-
-{* Tell a file system to serialize the current volume. This is typically
- * done by changing the creation date of the disk. This packet does not take
- * any arguments. NOTE: be prepared to handle failure of this packet for
- * V37 ROM filesystems.
- *}
-
- ACTION_SERIALIZE_DISK = 4200;
-
-{
- * A structure for holding error messages - stored as array with error == 0
- * for the last entry.
- }
-Type
- pErrorString = ^tErrorString;
- tErrorString = record
- estr_Nums : Pointer;
- estr_Strings : Pointer;
- END;
-
-
-{ DOS library node structure.
- * This is the data at positive offsets from the library node.
- * Negative offsets from the node is the jump table to DOS functions
- * node = (struct DosLibrary *) OpenLibrary( "dos.library" .. ) }
-
-Type
-
- pDosLibrary = ^tDosLibrary;
- tDosLibrary = record
- dl_lib : tLibrary;
- dl_Root : Pointer; { Pointer to RootNode, described below }
- (* BINCOMPAT?
- dl_GV : Pointer; { Pointer to BCPL global vector }
- dl_A2 : Longint; { Private register dump of DOS }
- dl_A5 : Longint;
- dl_A6 : Longint;
- *)
- dl_Errors : pErrorString; { pointer to array of error msgs }
- dl_TimeReq : pTimeRequest; { private pointer to timer request }
- dl_UtilityBase : pLibrary; { private ptr to utility library }
- dl_IntuitionBase : pLibrary;
- // there are much more fields but all flagged with "do not use" or private
- end;
-
- pRootNode = ^tRootNode;
- tRootNode = record
- rn_TaskArray : BPTR; { [0] is max number of CLI's
- [1] is APTR to process id of CLI 1
- [n] is APTR to process id of CLI n }
- rn_ConsoleSegment : BPTR; { SegList for the CLI }
- rn_Time : tDateStamp; { Current time }
- rn_RestartSeg : Longint; { SegList for the disk validator process }
- rn_Info : BPTR; { Pointer ot the Info structure }
- rn_FileHandlerSegment : BPTR; { segment for a file handler }
- rn_CliList : tMinList; { new list of all CLI processes }
- { the first cpl_Array is also rn_TaskArray }
- rn_BootProc : pMsgPort; { private ptr to msgport of boot fs }
- rn_ShellSegment : BPTR; { seglist for Shell (for NewShell) }
- rn_Flags : Longint; { dos flags }
- end;
-
-CONST
- RNB_WILDSTAR = 24;
- RNF_WILDSTAR = 16777216;
- RNB_PRIVATE1 = 1; { private for dos }
- RNF_PRIVATE1 = 2;
-
-Type
- pDosInfo = ^tDosInfo;
- tDosInfo = record
- case smallint of
- 0 : (
- di_ResList : BPTR;
- );
- 1 : (
- di_McName : BPTR; { Network name of this machine; currently 0 }
- di_DevInfo : BPTR; { Device List }
- di_Devices : BPTR; { Currently zero }
- di_Handlers : BPTR; { Currently zero }
- di_NetHand : Pointer; { Network handler processid; currently zero }
- di_DevLock, { do NOT access directly! }
- di_EntryLock, { do NOT access directly! }
- di_DeleteLock : tSignalSemaphore; { do NOT access directly! }
- );
- end;
-
-{ ONLY to be allocated by DOS! }
-
- pCliProcList = ^tCliProcList;
- tCliProcList = record
- cpl_Node : tMinNode;
- cpl_First : Longint; { number of first entry in array }
- cpl_Array : Array[0..0] of pMsgPort;
- { [0] is max number of CLI's in this entry (n)
- * [1] is CPTR to process id of CLI cpl_First
- * [n] is CPTR to process id of CLI cpl_First+n-1
- }
- END;
-
-{ structure for the Dos resident list. Do NOT allocate these, use }
-{ AddSegment(), and heed the warnings in the autodocs! }
-
-Type
- pSegment = ^tSegment;
- tSegment = record
- seg_Next : BPTR;
- seg_UC : Longint;
- seg_Seg : BPTR;
- seg_Name : Array[0..3] of Char; { actually the first 4 chars of BSTR name }
- END;
-
-CONST
- CMD_SYSTEM = -1;
- CMD_INTERNAL = -2;
- CMD_DISABLED = -999;
-
-
-{ DOS Processes started from the CLI via RUN or NEWCLI have this additional
- * set to data associated with them }
-Type
- pCommandLineInterface = ^tCommandLineInterface;
- tCommandLineInterface = record
- cli_Result2 : Longint; { Value of IoErr from last command }
- cli_SetName : BSTR; { Name of current directory }
- cli_CommandDir : BPTR; { Lock associated with command directory }
- cli_ReturnCode : Longint; { Return code from last command }
- cli_CommandName : BSTR; { Name of current command }
- cli_FailLevel : Longint; { Fail level (set by FAILAT) }
- cli_Prompt : BSTR; { Current prompt (set by PROMPT) }
- cli_StandardInput : BPTR; { Default (terminal) CLI input }
- cli_CurrentInput : BPTR; { Current CLI input }
- cli_CommandFile : BSTR; { Name of EXECUTE command file }
- cli_Interactive : Longint; { Boolean; True if prompts required }
- cli_Background : Longint; { Boolean; True if CLI created by RUN }
- cli_CurrentOutput : BPTR; { Current CLI output }
- cli_DefaultStack : Longint; { Stack size to be obtained in long words }
- cli_StandardOutput : BPTR; { Default (terminal) CLI output }
- cli_Module : BPTR; { SegList of currently loaded command }
- end;
-
-{ This structure can take on different values depending on whether it is
- * a device, an assigned directory, or a volume. Below is the structure
- * reflecting volumes only. Following that is the structure representing
- * only devices.
- }
-
-{ structure representing a volume }
-
- pDeviceList = ^tDeviceList;
- tDeviceList = record
- dl_Next : BPTR; { bptr to next device list }
- dl_Type : Longint; { see DLT below }
- dl_Task : pMsgPort; { ptr to handler task }
- dl_Lock : BPTR; { not for volumes }
- dl_VolumeDate : tDateStamp; { creation date }
- dl_LockList : BPTR; { outstanding locks }
- dl_DiskType : Longint; { 'DOS', etc }
- dl_unused : Longint;
- dl_Name : BSTR; { bptr to bcpl name }
- end;
-
-{ device structure (same as the DeviceNode structure in filehandler.h) }
-
- pDevInfo = ^tDevInfo;
- tDevInfo = record
- dvi_Next : BPTR;
- dvi_Type : Longint;
- dvi_Task : Pointer;
- dvi_Lock : BPTR;
- dvi_Handler : BSTR;
- dvi_StackSize : Longint;
- dvi_Priority : Longint;
- dvi_Startup : Longint;
- dvi_SegList : BPTR;
- dvi_GlobVec : BSTR;
- dvi_Name : BSTR;
- end;
-
-{ structure used for multi-directory assigns. AllocVec()ed. }
-
- pAssignList = ^tAssignList;
- tAssignList = record
- al_Next : pAssignList;
- al_Lock : BPTR;
- END;
-
-
-{ combined structure for devices, assigned directories, volumes }
-
- pDosList = ^tDosList;
- tDosList = record
- dol_Next : BPTR; { bptr to next device on list }
- dol_Type : Longint; { see DLT below }
- dol_Task : pMsgPort; { ptr to handler task }
- dol_Lock : BPTR;
- case smallint of
- 0 : (
- dol_Handler : record
- dol_Handler : BSTR; { file name to load IF seglist is null }
- dol_StackSize, { stacksize to use when starting process }
- dol_Priority, { task priority when starting process }
- dol_Startup : Longint; { startup msg: FileSysStartupMsg for disks }
- dol_SegList, { already loaded code for new task }
- dol_GlobVec : BPTR; { BCPL global vector to use when starting
- * a process. -1 indicates a C/Assembler
- * program. }
- end;
- );
- 1 : (
- dol_Volume : record
- dol_VolumeDate : tDateStamp; { creation date }
- dol_LockList : BPTR; { outstanding locks }
- dol_DiskType : Longint; { 'DOS', etc }
- END;
- );
- 2 : (
- dol_assign : record
- dol_AssignName : STRPTR; { name for non-OR-late-binding assign }
- dol_List : pAssignList; { for multi-directory assigns (regular) }
- END;
- dol_Name : BSTR; { bptr to bcpl name }
- );
- END;
-
-Const
-
-{ definitions for dl_Type }
-
- DLT_DEVICE = 0;
- DLT_DIRECTORY = 1;
- DLT_VOLUME = 2;
- DLT_LATE = 3; { late-binding assign }
- DLT_NONBINDING = 4; { non-binding assign }
- DLT_PRIVATE = -1; { for internal use only }
-
-{ structure return by GetDeviceProc() }
-Type
-
- pDevProc = ^tDevProc;
- tDevProc = record
- dvp_Port : pMsgPort;
- dvp_Lock : BPTR;
- dvp_Flags : Longint;
- dvp_DevNode : pDosList; { DON'T TOUCH OR USE! }
- END;
-
-CONST
-{ definitions for dvp_Flags }
- DVPB_UNLOCK = 0;
- DVPF_UNLOCK = 1;
- DVPB_ASSIGN = 1;
- DVPF_ASSIGN = 2;
-
-{ Flags to be passed to LockDosList(), etc }
- LDB_DEVICES = 2;
- LDF_DEVICES = 4;
- LDB_VOLUMES = 3;
- LDF_VOLUMES = 8;
- LDB_ASSIGNS = 4;
- LDF_ASSIGNS = 16;
- LDB_ENTRY = 5;
- LDF_ENTRY = 32;
- LDB_DELETE = 6;
- LDF_DELETE = 64;
-
-{ you MUST specify one of LDF_READ or LDF_WRITE }
- LDB_READ = 0;
- LDF_READ = 1;
- LDB_WRITE = 1;
- LDF_WRITE = 2;
-
-{ actually all but LDF_ENTRY (which is used for internal locking) }
- LDF_ALL = (LDF_DEVICES+LDF_VOLUMES+LDF_ASSIGNS);
-
-{ error report types for ErrorReport() }
- REPORT_STREAM = 0; { a stream }
- REPORT_TASK = 1; { a process - unused }
- REPORT_LOCK = 2; { a lock }
- REPORT_VOLUME = 3; { a volume node }
- REPORT_INSERT = 4; { please insert volume }
-
-{ Special error codes for ErrorReport() }
- ABORT_DISK_ERROR = 296; { Read/write error }
- ABORT_BUSY = 288; { You MUST replace... }
-
-{ types for initial packets to shells from run/newcli/execute/system. }
-{ For shell-writers only }
- RUN_EXECUTE = -1;
- RUN_SYSTEM = -2;
- RUN_SYSTEM_ASYNCH = -3;
-
-{ Types for fib_DirEntryType. NOTE that both USERDIR and ROOT are }
-{ directories, and that directory/file checks should use <0 and >=0. }
-{ This is not necessarily exhaustive! Some handlers may use other }
-{ values as needed, though <0 and >=0 should remain as supported as }
-{ possible. }
- ST_ROOT = 1 ;
- ST_USERDIR = 2 ;
- ST_SOFTLINK = 3 ; { looks like dir, but may point to a file! }
- ST_LINKDIR = 4 ; { hard link to dir }
- ST_FILE = -3; { must be negative for FIB! }
- ST_LINKFILE = -4; { hard link to file }
- ST_PIPEFILE = -5; { for pipes that support ExamineFH }
-
-Type
-
-{ a lock structure, as returned by Lock() or DupLock() }
-
- pFileLock = ^tFileLock;
- tFileLock = record
- fl_Link : BPTR; { bcpl pointer to next lock }
- fl_Key : Longint; { disk block number }
- fl_Access : Longint; { exclusive or shared }
- fl_Task : pMsgPort; { handler task's port }
- fl_Volume : BPTR; { bptr to a DeviceList }
- end;
-
-
-{ NOTE: V37 dos.library, when doing ExAll() emulation, and V37 filesystems }
-{ will return an error if passed ED_OWNER. If you get ERROR_BAD_NUMBER, }
-{ retry with ED_COMMENT to get everything but owner info. All filesystems }
-{ supporting ExAll() must support through ED_COMMENT, and must check Type }
-{ and return ERROR_BAD_NUMBER if they don't support the type. }
-
-{ values that can be passed for what data you want from ExAll() }
-{ each higher value includes those below it (numerically) }
-{ you MUST chose one of these values }
-CONST
- ED_NAME = 1;
- ED_TYPE = 2;
- ED_SIZE = 3;
- ED_PROTECTION = 4;
- ED_DATE = 5;
- ED_COMMENT = 6;
- ED_OWNER = 7;
-{
- * Structure in which exall results are returned in. Note that only the
- * fields asked for will exist!
- }
-Type
- pExAllData = ^tExAllData;
- tExAllData = record
- ed_Next : pExAllData;
- ed_Name : STRPTR;
- ed_Type,
- ed_Size,
- ed_Prot,
- ed_Days,
- ed_Mins,
- ed_Ticks : ULONG;
- ed_Comment : STRPTR; { strings will be after last used field }
- ed_OwnerUID, { new for V39 }
- ed_OwnerGID : Word;
- END;
-
-{
- * Control structure passed to ExAll. Unused fields MUST be initialized to
- * 0, expecially eac_LastKey.
- *
- * eac_MatchFunc is a hook (see utility.library documentation for usage)
- * It should return true if the entry is to returned, false if it is to be
- * ignored.
- *
- * This structure MUST be allocated by AllocDosObject()!
- }
-
- pExAllControl = ^tExAllControl;
- tExAllControl = record
- eac_Entries, { number of entries returned in buffer }
- eac_LastKey : ULONG; { Don't touch inbetween linked ExAll calls! }
- eac_MatchString : STRPTR; { wildcard string for pattern match OR NULL }
- eac_MatchFunc : pHook; { optional private wildcard FUNCTION }
- END;
-
-
-
-{ The disk "environment" is a longword array that describes the
- * disk geometry. It is variable sized, with the length at the beginning.
- * Here are the constants for a standard geometry.
-}
-
-Type
-
- pDosEnvec = ^tDosEnvec;
- tDosEnvec = record
- de_TableSize : ULONG; { Size of Environment vector }
- de_SizeBlock : ULONG; { in longwords: standard value is 128 }
- de_SecOrg : ULONG; { not used; must be 0 }
- de_Surfaces : ULONG; { # of heads (surfaces). drive specific }
- de_SectorPerBlock : ULONG; { not used; must be 1 }
- de_BlocksPerTrack : ULONG; { blocks per track. drive specific }
- de_Reserved : ULONG; { DOS reserved blocks at start of partition. }
- de_PreAlloc : ULONG; { DOS reserved blocks at end of partition }
- de_Interleave : ULONG; { usually 0 }
- de_LowCyl : ULONG; { starting cylinder. typically 0 }
- de_HighCyl : ULONG; { max cylinder. drive specific }
- de_NumBuffers : ULONG; { Initial # DOS of buffers. }
- de_BufMemType : ULONG; { type of mem to allocate for buffers }
- de_MaxTransfer : ULONG; { Max number of bytes to transfer at a time }
- de_Mask : ULONG; { Address Mask to block out certain memory }
- de_BootPri : Longint; { Boot priority for autoboot }
- de_DosType : ULONG; { ASCII (HEX) string showing filesystem type;
- * 0X444F5300 is old filesystem,
- * 0X444F5301 is fast file system }
- de_Baud : ULONG; { Baud rate for serial handler }
- de_Control : ULONG; { Control smallint for handler/filesystem }
- de_BootBlocks : ULONG; { Number of blocks containing boot code }
- end;
-
-Const
-
-{ these are the offsets into the array }
-
- DE_TABLESIZE = 0; { standard value is 11 }
- DE_SIZEBLOCK = 1; { in longwords: standard value is 128 }
- DE_SECORG = 2; { not used; must be 0 }
- DE_NUMHEADS = 3; { # of heads (surfaces). drive specific }
- DE_SECSPERBLK = 4; { not used; must be 1 }
- DE_BLKSPERTRACK = 5; { blocks per track. drive specific }
- DE_RESERVEDBLKS = 6; { unavailable blocks at start. usually 2 }
- DE_PREFAC = 7; { not used; must be 0 }
- DE_INTERLEAVE = 8; { usually 0 }
- DE_LOWCYL = 9; { starting cylinder. typically 0 }
- DE_UPPERCYL = 10; { max cylinder. drive specific }
- DE_NUMBUFFERS = 11; { starting # of buffers. typically 5 }
- DE_MEMBUFTYPE = 12; { type of mem to allocate for buffers. }
- DE_BUFMEMTYPE = 12; { same as above, better name
- * 1 is public, 3 is chip, 5 is fast }
- DE_MAXTRANSFER = 13; { Max number bytes to transfer at a time }
- DE_MASK = 14; { Address Mask to block out certain memory }
- DE_BOOTPRI = 15; { Boot priority for autoboot }
- DE_DOSTYPE = 16; { ASCII (HEX) string showing filesystem type;
- * 0X444F5300 is old filesystem,
- * 0X444F5301 is fast file system }
- DE_BAUD = 17; { Baud rate for serial handler }
- DE_CONTROL = 18; { Control smallint for handler/filesystem }
- DE_BOOTBLOCKS = 19; { Number of blocks containing boot code }
-
-
-{ The file system startup message is linked into a device node's startup
-** field. It contains a pointer to the above environment, plus the
-** information needed to do an exec OpenDevice().
-}
-
-Type
-
- pFileSysStartupMsg = ^tFileSysStartupMsg;
- tFileSysStartupMsg = record
- fssm_Unit : ULONG; { exec unit number for this device }
- fssm_Device : BSTR; { null terminated bstring to the device name }
- fssm_Environ : BPTR; { ptr to environment table (see above) }
- fssm_Flags : ULONG; { flags for OpenDevice() }
- end;
-
-
-{ The include file "libraries/dosextens.h" has a DeviceList structure.
- * The "device list" can have one of three different things linked onto
- * it. Dosextens defines the structure for a volume. DLT_DIRECTORY
- * is for an assigned directory. The following structure is for
- * a dos "device" (DLT_DEVICE).
-}
-
- pDeviceNode = ^tDeviceNode;
- tDeviceNode = record
- dn_Next : BPTR; { singly linked list }
- dn_Type : ULONG; { always 0 for dos "devices" }
- dn_Task : pMsgPort; { standard dos "task" field. If this is
- * null when the node is accesses, a task
- * will be started up }
- dn_Lock : BPTR; { not used for devices -- leave null }
- dn_Handler : BSTR; { filename to loadseg (if seglist is null) }
- dn_StackSize : ULONG; { stacksize to use when starting task }
- dn_Priority : Longint; { task priority when starting task }
- dn_Startup : BPTR; { startup msg: FileSysStartupMsg for disks }
- dn_SegList : BPTR; { code to run to start new task (if necessary).
- * if null then dn_Handler will be loaded. }
- dn_GlobalVec : BPTR; { BCPL global vector to use when starting
- * a task. -1 means that dn_SegList is not
- * for a bcpl program, so the dos won't
- * try and construct one. 0 tell the
- * dos that you obey BCPL linkage rules,
- * and that it should construct a global
- * vector for you.
- }
- dn_Name : BSTR; { the node name, e.g. '\3','D','F','3' }
- end;
-
-CONST
-{ use of Class and code is discouraged for the time being - we might want to
- change things }
-{ --- NotifyMessage Class ------------------------------------------------ }
- NOTIFY_CLASS = $40000000;
-
-{ --- NotifyMessage Codes ------------------------------------------------ }
- NOTIFY_CODE = $1234;
-
-
-{ Sent to the application if SEND_MESSAGE is specified. }
-
-Type
-{ Do not modify or reuse the notifyrequest while active. }
-{ note: the first LONG of nr_Data has the length transfered }
-
-
- pNotifyRequest = ^tNotifyRequest;
- tNotifyRequest = record
- nr_Name : pchar;
- nr_FullName : pchar;
- nr_UserData : ULONG;
- nr_Flags : ULONG;
- nr_stuff : record
- case smallint 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 ULONG;
- nr_MsgCount : ULONG;
- nr_Handler : pMsgPort;
- end;
-
- pNotifyMessage = ^tNotifyMessage;
- tNotifyMessage = record
- nm_ExecMessage : tMessage;
- nm_Class : ULONG;
- nm_Code : Word;
- nm_NReq : pNotifyRequest; { don't modify the request! }
- nm_DoNotTouch, { like it says! For use by handlers }
- nm_DoNotTouch2 : ULONG; { ditto }
- END;
-
-
-CONST
-{ --- NotifyRequest Flags ------------------------------------------------ }
- NRF_SEND_MESSAGE = 1 ;
- NRF_SEND_SIGNAL = 2 ;
- NRF_WAIT_REPLY = 8 ;
- NRF_NOTIFY_INITIAL = 16;
-
-{ do NOT set or remove NRF_MAGIC! Only for use by handlers! }
- NRF_MAGIC = $80000000;
-
-{ bit numbers }
- NRB_SEND_MESSAGE = 0;
- NRB_SEND_SIGNAL = 1;
- NRB_WAIT_REPLY = 3;
- NRB_NOTIFY_INITIAL = 4;
-
- NRB_MAGIC = 31;
-
-{ Flags reserved for private use by the handler: }
- NR_HANDLER_FLAGS = $ffff0000;
-
-{ *********************************************************************
- *
- * The CSource data structure defines the input source for "ReadItem()"
- * as well as the ReadArgs call. It is a publicly defined structure
- * which may be used by applications which use code that follows the
- * conventions defined for access.
- *
- * When passed to the dos.library functions, the value passed as
- * struct *CSource is defined as follows:
- * if ( CSource == 0) Use buffered IO "ReadChar()" as data source
- * else Use CSource for input character stream
- *
- * The following two pseudo-code routines define how the CSource structure
- * is used:
- *
- * long CS_ReadChar( struct CSource *CSource )
- *
- * if ( CSource == 0 ) return ReadChar();
- * if ( CSource->CurChr >= CSource->Length ) return ENDSTREAMCHAR;
- * return CSource->Buffer[ CSource->CurChr++ ];
- *
- *
- * BOOL CS_UnReadChar( struct CSource *CSource )
- *
- * if ( CSource == 0 ) return UnReadChar();
- * if ( CSource->CurChr <= 0 ) return FALSE;
- * CSource->CurChr--;
- * return TRUE;
- *
- *
- * To initialize a struct CSource, you set CSource->CS_Buffer to
- * a string which is used as the data source, and set CS_Length to
- * the number of characters in the string. Normally CS_CurChr should
- * be initialized to ZERO, or left as it was from prior use as
- * a CSource.
- *
- *********************************************************************}
-
-Type
- pCSource = ^tCSource;
- tCSource = record
- CS_Buffer : STRPTR;
- CS_Length,
- CS_CurChr : Longint;
- END;
-
-{ *********************************************************************
- *
- * The RDArgs data structure is the input parameter passed to the DOS
- * ReadArgs() function call.
- *
- * The RDA_Source structure is a CSource as defined above;
- * if RDA_Source.CS_Buffer is non-null, RDA_Source is used as the input
- * character stream to parse, else the input comes from the buffered STDIN
- * calls ReadChar/UnReadChar.
- *
- * RDA_DAList is a private address which is used internally to track
- * allocations which are freed by FreeArgs(). This MUST be initialized
- * to NULL prior to the first call to ReadArgs().
- *
- * The RDA_Buffer and RDA_BufSiz fields allow the application to supply
- * a fixed-size buffer in which to store the parsed data. This allows
- * the application to pre-allocate a buffer rather than requiring buffer
- * space to be allocated. If either RDA_Buffer or RDA_BufSiz is NULL,
- * the application has not supplied a buffer.
- *
- * RDA_ExtHelp is a text string which will be displayed instead of the
- * template string, if the user is prompted for input.
- *
- * RDA_Flags bits control how ReadArgs() works. The flag bits are
- * defined below. Defaults are initialized to ZERO.
- *
- *********************************************************************}
-
- pRDArgs = ^tRDArgs;
- tRDArgs = record
- RDA_Source : tCSource; { Select input source }
- RDA_DAList : Longint; { PRIVATE. }
- RDA_Buffer : STRPTR; { Optional string parsing space. }
- RDA_BufSiz : Longint; { Size of RDA_Buffer (0..n) }
- RDA_ExtHelp : STRPTR; { Optional extended help }
- RDA_Flags : Longint; { Flags for any required control }
- END;
-
-CONST
- RDAB_STDIN = 0; { Use "STDIN" rather than "COMMAND LINE" }
- RDAF_STDIN = 1;
- RDAB_NOALLOC = 1; { If set, do not allocate extra string space.}
- RDAF_NOALLOC = 2;
- RDAB_NOPROMPT = 2; { Disable reprompting for string input. }
- RDAF_NOPROMPT = 4;
-
-{ *********************************************************************
- * Maximum number of template keywords which can be in a template passed
- * to ReadArgs(). IMPLEMENTOR NOTE - must be a multiple of 4.
- *********************************************************************}
- MAX_TEMPLATE_ITEMS = 100;
-
-{ *********************************************************************
- * Maximum number of MULTIARG items returned by ReadArgs(), before
- * an ERROR_LINE_TOO_LONG. These two limitations are due to stack
- * usage. Applications should allow "a lot" of stack to use ReadArgs().
- *********************************************************************}
- MAX_MULTIARGS = 128;
-
-CONST
-{ Modes for LockRecord/LockRecords() }
- REC_EXCLUSIVE = 0;
- REC_EXCLUSIVE_IMMED = 1;
- REC_SHARED = 2;
- REC_SHARED_IMMED = 3;
-
-{ struct to be passed to LockRecords()/UnLockRecords() }
-
-Type
- pRecordLock = ^tRecordLock;
- tRecordLock = record
- rec_FH : BPTR; { filehandle }
- rec_Offset, { offset in file }
- rec_Length, { length of file to be locked }
- rec_Mode : ULONG; { Type of lock }
- END;
-
-
-{ the structure in the pr_LocalVars list }
-{ Do NOT allocate yourself, use SetVar()!!! This structure may grow in }
-{ future releases! The list should be left in alphabetical order, and }
-{ may have multiple entries with the same name but different types. }
-Type
- pLocalVar = ^tLocalVar;
- tLocalVar = record
- lv_Node : tNode;
- lv_Flags : Word;
- lv_Value : STRPTR;
- lv_Len : ULONG;
- END;
-
-{
- * The lv_Flags bits are available to the application. The unused
- * lv_Node.ln_Pri bits are reserved for system use.
- }
-
-CONST
-{ bit definitions for lv_Node.ln_Type: }
- LV_VAR = 0; { an variable }
- LV_ALIAS = 1; { an alias }
-{ to be or'ed into type: }
- LVB_IGNORE = 7; { ignore this entry on GetVar, etc }
- LVF_IGNORE = $80;
-
-{ definitions of flags passed to GetVar()/SetVar()/DeleteVar() }
-{ bit defs to be OR'ed with the type: }
-{ item will be treated as a single line of text unless BINARY_VAR is used }
- GVB_GLOBAL_ONLY = 8 ;
- GVF_GLOBAL_ONLY = $100;
- GVB_LOCAL_ONLY = 9 ;
- GVF_LOCAL_ONLY = $200;
- GVB_BINARY_VAR = 10 ; { treat variable as binary }
- GVF_BINARY_VAR = $400;
- GVB_DONT_NULL_TERM = 11; { only with GVF_BINARY_VAR }
- GVF_DONT_NULL_TERM = $800;
-
-{ this is only supported in >= V39 dos. V37 dos ignores this. }
-{ this causes SetVar to affect ENVARC: as well as ENV:. }
- GVB_SAVE_VAR = 12 ; { only with GVF_GLOBAL_VAR }
- GVF_SAVE_VAR = $1000 ;
-
-
-CONST
-{ ***************************************************************************}
-{ definitions for the System() call }
-
- SYS_Dummy = (TAG_USER + 32);
- SYS_Input = (SYS_Dummy + 1);
- { specifies the input filehandle }
- SYS_Output = (SYS_Dummy + 2);
- { specifies the output filehandle }
- SYS_Asynch = (SYS_Dummy + 3);
- { run asynch, close input/output on exit(!) }
- SYS_UserShell = (SYS_Dummy + 4);
- { send to user shell instead of boot shell }
- SYS_CustomShell= (SYS_Dummy + 5);
- { send to a specific shell (data is name) }
-{ SYS_Error, }
-
-
-{ ***************************************************************************}
-{ definitions for the CreateNewProc() call }
-{ you MUST specify one of NP_Seglist or NP_Entry. All else is optional. }
-
- NP_Dummy = (TAG_USER + 1000);
- NP_Seglist = (NP_Dummy + 1);
- { seglist of code to run for the process }
- NP_FreeSeglist = (NP_Dummy + 2);
- { free seglist on exit - only valid for }
- { for NP_Seglist. Default is TRUE. }
- NP_Entry = (NP_Dummy + 3);
- { entry point to run - mutually exclusive }
- { with NP_Seglist! }
- NP_Input = (NP_Dummy + 4);
- { filehandle - default is Open("NIL:"...) }
- NP_Output = (NP_Dummy + 5);
- { filehandle - default is Open("NIL:"...) }
- NP_CloseInput = (NP_Dummy + 6);
- { close input filehandle on exit }
- { default TRUE }
- NP_CloseOutput = (NP_Dummy + 7);
- { close output filehandle on exit }
- { default TRUE }
- NP_Error = (NP_Dummy + 8);
- { filehandle - default is Open("NIL:"...) }
- NP_CloseError = (NP_Dummy + 9);
- { close error filehandle on exit }
- { default TRUE }
- NP_CurrentDir = (NP_Dummy + 10);
- { lock - default is parent's current dir }
- NP_StackSize = (NP_Dummy + 11);
- { stacksize for process - default 4000 }
- NP_Name = (NP_Dummy + 12);
- { name for process - default "New Process"}
- NP_Priority = (NP_Dummy + 13);
- { priority - default same as parent }
- NP_ConsoleTask = (NP_Dummy + 14);
- { consoletask - default same as parent }
- NP_WindowPtr = (NP_Dummy + 15);
- { window ptr - default is same as parent }
- NP_HomeDir = (NP_Dummy + 16);
- { home directory - default curr home dir }
- NP_CopyVars = (NP_Dummy + 17);
- { boolean to copy local vars-default TRUE }
- NP_Cli = (NP_Dummy + 18);
- { create cli structure - default FALSE }
- NP_Path = (NP_Dummy + 19);
- { path - default is copy of parents path }
- { only valid if a cli process! }
- NP_CommandName = (NP_Dummy + 20);
- { commandname - valid only for CLI }
- NP_Arguments = (NP_Dummy + 21);
- { cstring of arguments - passed with str }
- { in a0, length in d0. (copied and freed }
- { on exit. Default is empty string. }
- { NOTE: not operational until 2.04 - see }
- { BIX/TechNotes for more info/workarounds }
- { NOTE: in 2.0, it DIDN'T pass "" - the }
- { registers were random. }
-{ FIX! should this be only for cli's? }
- NP_NotifyOnDeath = (NP_Dummy + 22);
- { notify parent on death - default FALSE }
- { Not functional yet. }
- NP_Synchronous = (NP_Dummy + 23);
- { don't return until process finishes - }
- { default FALSE. }
- { Not functional yet. }
- NP_ExitCode = (NP_Dummy + 24);
- { code to be called on process exit }
- NP_ExitData = (NP_Dummy + 25);
- { optional argument for NP_EndCode rtn - }
- { default NULL }
-
-
-{ ***************************************************************************}
-{ tags for AllocDosObject }
-
- ADO_Dummy = (TAG_USER + 2000);
- ADO_FH_Mode = (ADO_Dummy + 1);
- { for type DOS_FILEHANDLE only }
- { sets up FH for mode specified.
- This can make a big difference for buffered
- files. }
- { The following are for DOS_CLI }
- { If you do not specify these, dos will use it's preferred values }
- { which may change from release to release. The BPTRs to these }
- { will be set up correctly for you. Everything will be zero, }
- { except cli_FailLevel (10) and cli_Background (DOSTRUE). }
- { NOTE: you may also use these 4 tags with CreateNewProc. }
-
- ADO_DirLen = (ADO_Dummy + 2);
- { size in bytes for current dir buffer }
- ADO_CommNameLen= (ADO_Dummy + 3);
- { size in bytes for command name buffer }
- ADO_CommFileLen= (ADO_Dummy + 4);
- { size in bytes for command file buffer }
- ADO_PromptLen = (ADO_Dummy + 5);
- { size in bytes for the prompt buffer }
-
-{ ***************************************************************************}
-{ tags for NewLoadSeg }
-{ no tags are defined yet for NewLoadSeg }
-
-
-//PROCEDURE AbortPkt(port : pMsgPort; pkt : pDosPacket);
-//FUNCTION AddBuffers(const name : pCHAR; number : LONGINT) : BOOLEAN;
-//FUNCTION AddDosEntry(dlist : pDosList) : BOOLEAN;
-//FUNCTION AddPart(dirname : pCHAR;const filename : pCHAR; size : ULONG) : BOOLEAN;
-//FUNCTION AddSegment(const name : pCHAR; seg : LONGINT; system : LONGINT) : BOOLEAN;
-//FUNCTION AllocDosObject(type_ : ULONG;const tags : pTagItem) : POINTER;
-//FUNCTION AllocDosObjectTagList(type_ : ULONG;const tags : pTagItem) : POINTER;
-//FUNCTION AssignAdd(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-//FUNCTION AssignLate(const name : pCHAR;const path : pCHAR) : BOOLEAN;
-//FUNCTION AssignLock(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-//FUNCTION AssignPath(const name : pCHAR;const path : pCHAR) : BOOLEAN;
-//FUNCTION AttemptLockDosList(flags : ULONG) : pDosList;
-//FUNCTION ChangeMode(type_ : LONGINT; fh : LONGINT; newmode : LONGINT) : BOOLEAN;
-//FUNCTION CheckSignal(mask : LONGINT) : LONGINT;
-FUNCTION Cli : pCommandLineInterface;
-//FUNCTION CliInitNewcli(dp : pDosPacket) : LONGINT;
-//FUNCTION CliInitRun(dp : pDosPacket) : LONGINT;
-//FUNCTION CompareDates(const date1 : pDateStamp;const date2 : pDateStamp) : LONGINT;
-//FUNCTION CreateDir(const name : pCHAR) : LONGINT;
-//FUNCTION CreateNewProc(const tags : pTagItem) : pProcess;
-//FUNCTION CreateNewProcTagList(const tags : pTagItem) : pProcess;
-//FUNCTION CreateProc(const name : pCHAR; pri : LONGINT; segList : LONGINT; stackSize : LONGINT) : pMsgPort;
-//FUNCTION CurrentDir(lock : LONGINT) : LONGINT;
-//PROCEDURE DateStamp(date : pDateStamp);
-//FUNCTION DateToStr(datetime : pDateTime) : BOOLEAN;
-//FUNCTION DeleteFile(const name : pCHAR) : BOOLEAN;
-//FUNCTION DeleteVar(const name : pCHAR; flags : ULONG) : BOOLEAN;
-//FUNCTION DeviceProc(const name : pCHAR) : pMsgPort;
-//FUNCTION DoPkt(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT; arg4 : LONGINT; arg5 : LONGINT) : LONGINT;
-//FUNCTION DoPkt0(port : pMsgPort; action : LONGINT) : LONGINT;
-//FUNCTION DoPkt1(port : pMsgPort; action : LONGINT; arg1 : LONGINT) : LONGINT;
-//FUNCTION DoPkt2(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT) : LONGINT;
-//FUNCTION DoPkt3(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT) : LONGINT;
-//FUNCTION DoPkt4(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT; arg4 : LONGINT) : LONGINT;
-//PROCEDURE DOSClose(file_ : LONGINT);
-PROCEDURE DOSDelay(timeout : LONGINT);
-//PROCEDURE DOSExit(returnCode : LONGINT);
-//FUNCTION DOSFlush(fh : LONGINT) : BOOLEAN;
-//FUNCTION DOSInput : LONGINT;
-//FUNCTION DOSOpen(const name : pCHAR; accessMode : LONGINT) : LONGINT;
-//FUNCTION DOSOutput : LONGINT;
-//FUNCTION DOSRead(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
-//FUNCTION DOSRename(const oldName : pCHAR;const newName : pCHAR) : Boolean;
-//FUNCTION DOSSeek(file_ : LONGINT; position : LONGINT; offset : LONGINT) : LONGINT;
-//FUNCTION DOSWrite(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
-//FUNCTION DupLock(lock : LONGINT) : LONGINT;
-//FUNCTION DupLockFromFH(fh : LONGINT) : LONGINT;
-//PROCEDURE EndNotify(notify : pNotifyRequest);
-//FUNCTION ErrorReport(code : LONGINT; type_ : LONGINT; arg1 : ULONG; device : pMsgPort) : BOOLEAN;
-//FUNCTION ExAll(lock : LONGINT; buffer : pExAllData; size : LONGINT; data : LONGINT; control : pExAllControl) : BOOLEAN;
-//PROCEDURE ExAllEnd(lock : LONGINT; buffer : pExAllData; size : LONGINT; data : LONGINT; control : pExAllControl);
-//FUNCTION Examine(lock : LONGINT; fileInfoBlock : pFileInfoBlock) : BOOLEAN;
-//FUNCTION ExamineFH(fh : LONGINT; fib : pFileInfoBlock) : BOOLEAN;
-//FUNCTION Execute(const string_ : pCHAR; file_ : LONGINT; file2 : LONGINT) : BOOLEAN;
-//FUNCTION ExNext(lock : LONGINT; fileInfoBlock : pFileInfoBlock) : BOOLEAN;
-//FUNCTION Fault(code : LONGINT; header : pCHAR; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-//FUNCTION FGetC(fh : LONGINT) : LONGINT;
-//FUNCTION FGets(fh : LONGINT; buf : pCHAR; buflen : ULONG) : pCHAR;
-//FUNCTION FilePart(const path : pCHAR) : pCHAR;
-//FUNCTION FindArg(const keyword : pCHAR;const arg_template : pCHAR) : LONGINT;
-//FUNCTION FindCliProc(num : ULONG) : pProcess;
-//FUNCTION FindDosEntry(const dlist : pDosList;const name : pCHAR; flags : ULONG) : pDosList;
-//FUNCTION FindSegment(const name : pCHAR;const seg : pSegment; system : LONGINT) : pSegment;
-//FUNCTION FindVar(const name : pCHAR; type_ : ULONG) : pLocalVar;
-//FUNCTION Format(const filesystem : pCHAR;const volumename : pCHAR; dostype : ULONG) : BOOLEAN;
-//FUNCTION FPutC(fh : LONGINT; ch : LONGINT) : LONGINT;
-//FUNCTION FPuts(fh : LONGINT;const str : pCHAR) : BOOLEAN;
-//FUNCTION FRead(fh : LONGINT; block : POINTER; blocklen : ULONG; number : ULONG) : LONGINT;
-//PROCEDURE FreeArgs(args : pRDArgs);
-//PROCEDURE FreeDeviceProc(dp : pDevProc);
-//PROCEDURE FreeDosEntry(dlist : pDosList);
-//PROCEDURE FreeDosObject(type_ : ULONG; ptr : POINTER);
-//FUNCTION FWrite(fh : LONGINT; block : POINTER; blocklen : ULONG; number : ULONG) : LONGINT;
-//FUNCTION GetArgStr : pCHAR;
-//FUNCTION GetConsoleTask : pMsgPort;
-//FUNCTION GetCurrentDirName(buf : pCHAR; len : LONGINT) : BOOLEAN;
-//FUNCTION GetDeviceProc(const name : pCHAR; dp : pDevProc) : pDevProc;
-//FUNCTION GetFileSysTask : pMsgPort;
-//FUNCTION GetProgramDir : LONGINT;
-//FUNCTION GetProgramName(buf : pCHAR; len : LONGINT) : BOOLEAN;
-//FUNCTION GetPrompt(buf : pCHAR; len : LONGINT) : BOOLEAN;
-//FUNCTION GetVar(const name : pCHAR; buffer : pCHAR; size : LONGINT; flags : LONGINT) : LONGINT;
-//FUNCTION Info(lock : LONGINT; parameterBlock : pInfoData) : BOOLEAN;
-//FUNCTION Inhibit(const name : pCHAR; onoff : LONGINT) : BOOLEAN;
-//FUNCTION InternalLoadSeg(fh : LONGINT; table : LONGINT;const funcarray : pLONGINT; VAR stack : LONGINT) : LONGINT;
-//FUNCTION InternalUnLoadSeg(seglist : LONGINT; freefunc : tPROCEDURE) : BOOLEAN;
-//FUNCTION IoErr : LONGINT;
-//FUNCTION IsFileSystem(const name : pCHAR) : BOOLEAN;
-//FUNCTION IsInteractive(file_ : LONGINT) : BOOLEAN;
-//FUNCTION LoadSeg(const name : pCHAR) : LONGINT;
-//FUNCTION Lock(const name : pCHAR; type_ : LONGINT) : LONGINT;
-//FUNCTION LockDosList(flags : ULONG) : pDosList;
-//FUNCTION LockRecord(fh : LONGINT; offset : ULONG; length : ULONG; mode : ULONG; timeout : ULONG) : BOOLEAN;
-//FUNCTION LockRecords(recArray : pRecordLock; timeout : ULONG) : BOOLEAN;
-//FUNCTION MakeDosEntry(const name : pCHAR; type_ : LONGINT) : pDosList;
-//FUNCTION MakeLink(const name : pCHAR; dest : LONGINT; soft : LONGINT) : BOOLEAN;
-//PROCEDURE MatchEnd(anchor : pAnchorPath);
-//FUNCTION MatchFirst(const pat : pCHAR; anchor : pAnchorPath) : LONGINT;
-//FUNCTION MatchNext(anchor : pAnchorPath) : LONGINT;
-//FUNCTION MatchPattern(const pat : pCHAR; str : pCHAR) : BOOLEAN;
-//FUNCTION MatchPatternNoCase(const pat : pCHAR; str : pCHAR) : BOOLEAN;
-//FUNCTION MaxCli : ULONG;
-//FUNCTION NameFromFH(fh : LONGINT; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-FUNCTION NameFromLock(lock : LONGINT; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-//FUNCTION NewLoadSeg(const file_ : pCHAR;const tags : pTagItem) : LONGINT;
-//FUNCTION NewLoadSegTagList(const file_ : pCHAR;const tags : pTagItem) : LONGINT;
-//FUNCTION NextDosEntry(const dlist : pDosList; flags : ULONG) : pDosList;
-//FUNCTION OpenFromLock(lock : LONGINT) : LONGINT;
-//FUNCTION ParentDir(lock : LONGINT) : LONGINT;
-//FUNCTION ParentOfFH(fh : LONGINT) : LONGINT;
-//FUNCTION ParsePattern(const pat : pCHAR; buf : pCHAR; buflen : LONGINT) : LONGINT;
-//FUNCTION ParsePatternNoCase(const pat : pCHAR; buf : pCHAR; buflen : LONGINT) : LONGINT;
-//FUNCTION PathPart(const path : pCHAR) : pCHAR;
-//FUNCTION PrintFault(code : LONGINT;const header : pCHAR) : BOOLEAN;
-//FUNCTION PutStr(const str : pCHAR) : BOOLEAN;
-//FUNCTION ReadArgs(const arg_template : pCHAR; arra : pLONGINT; args : pRDArgs) : pRDArgs;
-//FUNCTION ReadItem(const name : pCHAR; maxchars : LONGINT; cSource : pCSource) : LONGINT;
-//FUNCTION ReadLink(port : pMsgPort; lock : LONGINT;const path : pCHAR; buffer : pCHAR; size : ULONG) : BOOLEAN;
-//FUNCTION Relabel(const drive : pCHAR;const newname : pCHAR) : BOOLEAN;
-//FUNCTION RemAssignList(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-//FUNCTION RemDosEntry(dlist : pDosList) : BOOLEAN;
-//FUNCTION RemSegment(seg : pSegment) : BOOLEAN;
-//PROCEDURE ReplyPkt(dp : pDosPacket; res1 : LONGINT; res2 : LONGINT);
-//FUNCTION RunCommand(seg : LONGINT; stack : LONGINT;const paramptr : pCHAR; paramlen : LONGINT) : LONGINT;
-//FUNCTION SameDevice(lock1 : LONGINT; lock2 : LONGINT) : BOOLEAN;
-//FUNCTION SameLock(lock1 : LONGINT; lock2 : LONGINT) : LONGINT;
-//FUNCTION SelectInput(fh : LONGINT) : LONGINT;
-//FUNCTION SelectOutput(fh : LONGINT) : LONGINT;
-//PROCEDURE SendPkt(dp : pDosPacket; port : pMsgPort; replyport : pMsgPort);
-//FUNCTION SetArgStr(const string_ : pCHAR) : BOOLEAN;
-//FUNCTION SetComment(const name : pCHAR;const comment : pCHAR) : BOOLEAN;
-//FUNCTION SetConsoleTask(const task : pMsgPort) : pMsgPort;
-//FUNCTION SetCurrentDirName(const name : pCHAR) : BOOLEAN;
-//FUNCTION SetFileDate(const name : pCHAR; date : pDateStamp) : BOOLEAN;
-//FUNCTION SetFileSize(fh : LONGINT; pos : LONGINT; mode : LONGINT) : BOOLEAN;
-//FUNCTION SetFileSysTask(const task : pMsgPort) : pMsgPort;
-//FUNCTION SetIoErr(result : LONGINT) : LONGINT;
-//FUNCTION SetMode(fh : LONGINT; mode : LONGINT) : BOOLEAN;
-//FUNCTION SetOwner(const name : pCHAR; owner_info : LONGINT) : BOOLEAN;
-//FUNCTION SetProgramDir(lock : LONGINT) : LONGINT;
-//FUNCTION SetProgramName(const name : pCHAR) : BOOLEAN;
-//FUNCTION SetPrompt(const name : pCHAR) : BOOLEAN;
-//FUNCTION SetProtection(const name : pCHAR; protect : LONGINT) : BOOLEAN;
-//FUNCTION SetVar(const name : pCHAR; buffer : pCHAR; size : LONGINT; flags : LONGINT) : BOOLEAN;
-//FUNCTION SetVBuf(fh : LONGINT; buff : pCHAR; type_ : LONGINT; size : LONGINT) : BOOLEAN;
-//FUNCTION SplitName(const name : pCHAR; seperator : ULONG; buf : pCHAR; oldpos : LONGINT; size : LONGINT) : smallint;
-//FUNCTION StartNotify(notify : pNotifyRequest) : BOOLEAN;
-//FUNCTION StrToDate(datetime : pDateTime) : BOOLEAN;
-//FUNCTION StrToLong(const string_ : pCHAR; VAR value : LONGINT) : LONGINT;
-//FUNCTION SystemTagList(const command : pCHAR;const tags : pTagItem) : LONGINT;
-//FUNCTION DOSSystem(const command : pCHAR;const tags : pTagItem) : LONGINT;
-//FUNCTION UnGetC(fh : LONGINT; character : LONGINT) : LONGINT;
-//PROCEDURE UnLoadSeg(seglist : LONGINT);
-PROCEDURE UnLock(lock : LONGINT);
-//PROCEDURE UnLockDosList(flags : ULONG);
-//FUNCTION UnLockRecord(fh : LONGINT; offset : ULONG; length : ULONG) : BOOLEAN;
-//FUNCTION UnLockRecords(recArray : pRecordLock) : BOOLEAN;
-//FUNCTION VFPrintf(fh : LONGINT;const format : pCHAR;const argarray : POINTER) : LONGINT;
-//PROCEDURE VFWritef(fh : LONGINT;const format : pCHAR;const argarray : pLONGINT);
-//FUNCTION VPrintf(const format : pCHAR; const argarray : POINTER) : LONGINT;
-//FUNCTION WaitForChar(file_ : LONGINT; timeout : LONGINT) : BOOLEAN;
-//FUNCTION WaitPkt : pDosPacket;
-//FUNCTION WriteChars(const buf : pCHAR; buflen : ULONG) : LONGINT;
-
-//FUNCTION BADDR(bval :BPTR): POINTER;
-//FUNCTION MKBADDR(adr: Pointer): BPTR;
-
-{ overlay function and procedures}
-{
-FUNCTION AddBuffers(const name : string; number : LONGINT) : BOOLEAN;
-FUNCTION AddPart(dirname : string;const filename : pCHAR; size : ULONG) : BOOLEAN;
-FUNCTION AddPart(dirname : pCHAR;const filename : string; size : ULONG) : BOOLEAN;
-FUNCTION AddPart(dirname : string;const filename : string; size : ULONG) : BOOLEAN;
-FUNCTION AssignAdd(const name : string; lock : LONGINT) : BOOLEAN;
-FUNCTION AssignLate(const name : string;const path : pCHAR) : BOOLEAN;
-FUNCTION AssignLate(const name : pChar;const path : string) : BOOLEAN;
-FUNCTION AssignLate(const name : string;const path : string) : BOOLEAN;
-FUNCTION AssignLock(const name : string; lock : LONGINT) : BOOLEAN;
-FUNCTION AssignPath(const name : string; const path : pCHAR) : BOOLEAN;
-FUNCTION AssignPath(const name : pCHAR;const path : string) : BOOLEAN;
-FUNCTION AssignPath(const name : string;const path : string) : BOOLEAN;
-FUNCTION CreateDir(const name : string) : LONGINT;
-FUNCTION CreateProc(const name : string; pri : LONGINT; segList : LONGINT; stackSize : LONGINT) : pMsgPort;
-FUNCTION DeleteFile(const name : string) : BOOLEAN;
-FUNCTION DeleteVar(const name : string; flags : ULONG) : BOOLEAN;
-FUNCTION DeviceProc(const name : string) : pMsgPort;
-FUNCTION DOSOpen(const name : string; accessMode : LONGINT) : LONGINT;
-FUNCTION DOSRename(const oldName : string;const newName : pChar) : boolean;
-FUNCTION DOSRename(const oldName : pCHAR;const newName : string) : Boolean;
-FUNCTION DOSRename(const oldName : string;const newName : string) : Boolean;
-FUNCTION Execute(const string_ : string; file_ : LONGINT; file2 : LONGINT) : BOOLEAN;
-FUNCTION Fault(code : LONGINT; header : string; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-FUNCTION FilePart(const path : string) : pCHAR;
-FUNCTION FindArg(const keyword : string;const arg_template : pCHAR) : LONGINT;
-FUNCTION FindArg(const keyword : pCHAR;const arg_template : string) : LONGINT;
-FUNCTION FindArg(const keyword : string;const arg_template : string) : LONGINT;
-FUNCTION FindDosEntry(const dlist : pDosList;const name : string; flags : ULONG) : pDosList;
-FUNCTION FindSegment(const name : string;const seg : pSegment; system : LONGINT) : pSegment;
-FUNCTION FindVar(const name : string; type_ : ULONG) : pLocalVar;
-FUNCTION Format(const filesystem : string;const volumename : pCHAR; dostype : ULONG) : BOOLEAN;
-FUNCTION Format(const filesystem : pCHAR;const volumename : string; dostype : ULONG) : BOOLEAN;
-FUNCTION Format(const filesystem : string;const volumename : string; dostype : ULONG) : BOOLEAN;
-FUNCTION FPuts(fh : LONGINT;const str : string) : BOOLEAN;
-FUNCTION GetDeviceProc(const name : string; dp : pDevProc) : pDevProc;
-FUNCTION GetVar(const name : string; buffer : pCHAR; size : LONGINT; flags : LONGINT) : LONGINT;
-FUNCTION Inhibit(const name : string; onoff : LONGINT) : BOOLEAN;
-FUNCTION IsFileSystem(const name : string) : BOOLEAN;
-FUNCTION LoadSeg(const name : string) : LONGINT;
-FUNCTION Lock(const name : string; type_ : LONGINT) : LONGINT;
-FUNCTION MakeDosEntry(const name : string; type_ : LONGINT) : pDosList;
-FUNCTION MakeLink(const name : string; dest : LONGINT; soft : LONGINT) : BOOLEAN;
-FUNCTION MatchFirst(const pat : string; anchor : pAnchorPath) : LONGINT;
-FUNCTION MatchPattern(const pat : string; str : pCHAR) : BOOLEAN;
-FUNCTION MatchPattern(const pat : pCHAR; str : string) : BOOLEAN;
-FUNCTION MatchPattern(const pat : string; str : string) : BOOLEAN;
-FUNCTION MatchPatternNoCase(const pat : string; str : pCHAR) : BOOLEAN;
-FUNCTION MatchPatternNoCase(const pat : pCHAR; str : string) : BOOLEAN;
-FUNCTION MatchPatternNoCase(const pat : string; str : string) : BOOLEAN;
-FUNCTION NewLoadSeg(const file_ : string;const tags : pTagItem) : LONGINT;
-FUNCTION NewLoadSegTagList(const file_ : string;const tags : pTagItem) : LONGINT;
-FUNCTION PathPart(const path : string) : pCHAR;
-FUNCTION PrintFault(code : LONGINT;const header : string) : BOOLEAN;
-FUNCTION PutStr(const str : string) : BOOLEAN;
-FUNCTION ReadArgs(const arg_template : string; arra : pLONGINT; args : pRDArgs) : pRDArgs;
-FUNCTION ReadItem(const name : string; maxchars : LONGINT; cSource : pCSource) : LONGINT;
-FUNCTION ReadLink(port : pMsgPort; lock : LONGINT;const path : string; buffer : pCHAR; size : ULONG) : BOOLEAN;
-FUNCTION Relabel(const drive : string;const newname : pCHAR) : BOOLEAN;
-FUNCTION Relabel(const drive : pCHAR;const newname : string) : BOOLEAN;
-FUNCTION Relabel(const drive : string;const newname : string) : BOOLEAN;
-FUNCTION RemAssignList(const name : string; lock : LONGINT) : BOOLEAN;
-FUNCTION RunCommand(seg : LONGINT; stack : LONGINT;const paramptr : string; paramlen : LONGINT) : LONGINT;
-FUNCTION SetArgStr(const string_ : string) : BOOLEAN;
-FUNCTION SetComment(const name : string;const comment : pCHAR) : BOOLEAN;
-FUNCTION SetComment(const name : pCHAR;const comment : string) : BOOLEAN;
-FUNCTION SetComment(const name : string;const comment : string) : BOOLEAN;
-FUNCTION SetCurrentDirName(const name : string) : BOOLEAN;
-FUNCTION SetFileDate(const name : string; date : pDateStamp) : BOOLEAN;
-FUNCTION SetOwner(const name : string; owner_info : LONGINT) : BOOLEAN;
-FUNCTION SetProgramName(const name : string) : BOOLEAN;
-FUNCTION SetPrompt(const name : string) : BOOLEAN;
-FUNCTION SetProtection(const name : string; protect : LONGINT) : BOOLEAN;
-FUNCTION SetVar(const name : string; buffer : pCHAR; size : LONGINT; flags : LONGINT) : BOOLEAN;
-FUNCTION SplitName(const name : string; seperator : ULONG; buf : pCHAR; oldpos : LONGINT; size : LONGINT) : smallint;
-FUNCTION StrToLong(const string_ : string; VAR value : LONGINT) : LONGINT;
-FUNCTION SystemTagList(const command : string;const tags : pTagItem) : LONGINT;
-FUNCTION DOSSystem(const command : string;const tags : pTagItem) : LONGINT;
-}
-IMPLEMENTATION
-
-uses pastoc;
-
-
-{
-FUNCTION BADDR(bval : BPTR): POINTER;
-BEGIN
- BADDR := POINTER( bval shl 2);
-END;
-
-FUNCTION MKBADDR(adr : POINTER): BPTR;
-BEGIN
- MKBADDR := BPTR( LONGINT(adr) shr 2);
-END;
-
-PROCEDURE AbortPkt(port : pMsgPort; pkt : pDosPacket);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L pkt,D2
- MOVEA.L _DOSBase,A6
- JSR -264(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION AddBuffers(const name : pCHAR; number : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L number,D2
- MOVEA.L _DOSBase,A6
- JSR -732(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AddDosEntry(dlist : pDosList) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dlist,D1
- MOVEA.L _DOSBase,A6
- JSR -678(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AddPart(dirname : pCHAR;const filename : pCHAR; size : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dirname,D1
- MOVE.L filename,D2
- MOVE.L size,D3
- MOVEA.L _DOSBase,A6
- JSR -882(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AddSegment(const name : pCHAR; seg : LONGINT; system : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L seg,D2
- MOVE.L system,D3
- MOVEA.L _DOSBase,A6
- JSR -774(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AllocDosObject(type_ : ULONG;const tags : pTagItem) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L type_,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -228(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocDosObjectTagList(type_ : ULONG;const tags : pTagItem) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L type_,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -228(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AssignAdd(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L lock,D2
- MOVEA.L _DOSBase,A6
- JSR -630(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AssignLate(const name : pCHAR;const path : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L path,D2
- MOVEA.L _DOSBase,A6
- JSR -618(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AssignLock(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L lock,D2
- MOVEA.L _DOSBase,A6
- JSR -612(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AssignPath(const name : pCHAR;const path : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L path,D2
- MOVEA.L _DOSBase,A6
- JSR -624(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AttemptLockDosList(flags : ULONG) : pDosList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L flags,D1
- MOVEA.L _DOSBase,A6
- JSR -666(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ChangeMode(type_ : LONGINT; fh : LONGINT; newmode : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L type_,D1
- MOVE.L fh,D2
- MOVE.L newmode,D3
- MOVEA.L _DOSBase,A6
- JSR -450(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION CheckSignal(mask : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L mask,D1
- MOVEA.L _DOSBase,A6
- JSR -792(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION Cli : pCommandLineInterface;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -492(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CliInitNewcli(dp : pDosPacket) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L dp,A0
- MOVEA.L _DOSBase,A6
- JSR -930(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CliInitRun(dp : pDosPacket) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L dp,A0
- MOVEA.L _DOSBase,A6
- JSR -936(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CompareDates(const date1 : pDateStamp;const date2 : pDateStamp) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L date1,D1
- MOVE.L date2,D2
- MOVEA.L _DOSBase,A6
- JSR -738(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateDir(const name : pCHAR) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateNewProc(const tags : pTagItem) : pProcess;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L tags,D1
- MOVEA.L _DOSBase,A6
- JSR -498(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateNewProcTagList(const tags : pTagItem) : pProcess;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L tags,D1
- MOVEA.L _DOSBase,A6
- JSR -498(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateProc(const name : pCHAR; pri : LONGINT; segList : LONGINT; stackSize : LONGINT) : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L pri,D2
- MOVE.L segList,D3
- MOVE.L stackSize,D4
- MOVEA.L _DOSBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CurrentDir(lock : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE DateStamp(date : pDateStamp);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L date,D1
- MOVEA.L _DOSBase,A6
- JSR -192(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION DateToStr(datetime : pDateTime) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L datetime,D1
- MOVEA.L _DOSBase,A6
- JSR -744(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION DeleteFile(const name : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION DeleteVar(const name : pCHAR; flags : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L flags,D2
- MOVEA.L _DOSBase,A6
- JSR -912(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION DeviceProc(const name : pCHAR) : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -174(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT; arg4 : LONGINT; arg5 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVE.L arg1,D3
- MOVE.L arg2,D4
- MOVE.L arg3,D5
- MOVE.L arg4,D6
- MOVE.L arg5,D7
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt0(port : pMsgPort; action : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt1(port : pMsgPort; action : LONGINT; arg1 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVE.L arg1,D3
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt2(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVE.L arg1,D3
- MOVE.L arg2,D4
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt3(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVE.L arg1,D3
- MOVE.L arg2,D4
- MOVE.L arg3,D5
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt4(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT; arg4 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVE.L arg1,D3
- MOVE.L arg2,D4
- MOVE.L arg3,D5
- MOVE.L arg4,D6
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE DOSClose(file_ : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVEA.L _DOSBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DOSDelay(timeout : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L timeout,D1
- MOVEA.L _DOSBase,A6
- JSR -198(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DOSExit(returnCode : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L returnCode,D1
- MOVEA.L _DOSBase,A6
- JSR -144(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION DOSFlush(fh : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -360(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION DOSInput : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSOpen(const name : pCHAR; accessMode : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L accessMode,D2
- MOVEA.L _DOSBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSOutput : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSRead(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L buffer,D2
- MOVE.L length,D3
- MOVEA.L _DOSBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSRename(const oldName : pCHAR;const newName : pCHAR) : Boolean;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L oldName,D1
- MOVE.L newName,D2
- MOVEA.L _DOSBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION DOSSeek(file_ : LONGINT; position : LONGINT; offset : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L position,D2
- MOVE.L offset,D3
- MOVEA.L _DOSBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSWrite(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L buffer,D2
- MOVE.L length,D3
- MOVEA.L _DOSBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DupLock(lock : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DupLockFromFH(fh : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -372(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE EndNotify(notify : pNotifyRequest);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L notify,D1
- MOVEA.L _DOSBase,A6
- JSR -894(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ErrorReport(code : LONGINT; type_ : LONGINT; arg1 : ULONG; device : pMsgPort) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L code,D1
- MOVE.L type_,D2
- MOVE.L arg1,D3
- MOVE.L device,D4
- MOVEA.L _DOSBase,A6
- JSR -480(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION ExAll(lock : LONGINT; buffer : pExAllData; size : LONGINT; data : LONGINT; control : pExAllControl) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L buffer,D2
- MOVE.L size,D3
- MOVE.L data,D4
- MOVE.L control,D5
- MOVEA.L _DOSBase,A6
- JSR -432(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE ExAllEnd(lock : LONGINT; buffer : pExAllData; size : LONGINT; data : LONGINT; control : pExAllControl);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L buffer,D2
- MOVE.L size,D3
- MOVE.L data,D4
- MOVE.L control,D5
- MOVEA.L _DOSBase,A6
- JSR -990(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION Examine(lock : LONGINT; fileInfoBlock : pFileInfoBlock) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L fileInfoBlock,D2
- MOVEA.L _DOSBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION ExamineFH(fh : LONGINT; fib : pFileInfoBlock) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L fib,D2
- MOVEA.L _DOSBase,A6
- JSR -390(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION Execute(const string_ : pCHAR; file_ : LONGINT; file2 : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L string_,D1
- MOVE.L file_,D2
- MOVE.L file2,D3
- MOVEA.L _DOSBase,A6
- JSR -222(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION ExNext(lock : LONGINT; fileInfoBlock : pFileInfoBlock) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L fileInfoBlock,D2
- MOVEA.L _DOSBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION Fault(code : LONGINT; header : pCHAR; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L code,D1
- MOVE.L header,D2
- MOVE.L buffer,D3
- MOVE.L len,D4
- MOVEA.L _DOSBase,A6
- JSR -468(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION FGetC(fh : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -306(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FGets(fh : LONGINT; buf : pCHAR; buflen : ULONG) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L buf,D2
- MOVE.L buflen,D3
- MOVEA.L _DOSBase,A6
- JSR -336(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FilePart(const path : pCHAR) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L path,D1
- MOVEA.L _DOSBase,A6
- JSR -870(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindArg(const keyword : pCHAR;const arg_template : pCHAR) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L keyword,D1
- MOVE.L arg_template,D2
- MOVEA.L _DOSBase,A6
- JSR -804(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindCliProc(num : ULONG) : pProcess;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L num,D1
- MOVEA.L _DOSBase,A6
- JSR -546(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindDosEntry(const dlist : pDosList;const name : pCHAR; flags : ULONG) : pDosList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dlist,D1
- MOVE.L name,D2
- MOVE.L flags,D3
- MOVEA.L _DOSBase,A6
- JSR -684(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindSegment(const name : pCHAR;const seg : pSegment; system : LONGINT) : pSegment;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L seg,D2
- MOVE.L system,D3
- MOVEA.L _DOSBase,A6
- JSR -780(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindVar(const name : pCHAR; type_ : ULONG) : pLocalVar;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L type_,D2
- MOVEA.L _DOSBase,A6
- JSR -918(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION Format(const filesystem : pCHAR;const volumename : pCHAR; dostype : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L filesystem,D1
- MOVE.L volumename,D2
- MOVE.L dostype,D3
- MOVEA.L _DOSBase,A6
- JSR -714(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION FPutC(fh : LONGINT; ch : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L ch,D2
- MOVEA.L _DOSBase,A6
- JSR -312(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FPuts(fh : LONGINT;const str : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L str,D2
- MOVEA.L _DOSBase,A6
- JSR -342(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION FRead(fh : LONGINT; block : POINTER; blocklen : ULONG; number : ULONG) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L block,D2
- MOVE.L blocklen,D3
- MOVE.L number,D4
- MOVEA.L _DOSBase,A6
- JSR -324(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE FreeArgs(args : pRDArgs);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L args,D1
- MOVEA.L _DOSBase,A6
- JSR -858(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeDeviceProc(dp : pDevProc);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dp,D1
- MOVEA.L _DOSBase,A6
- JSR -648(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeDosEntry(dlist : pDosList);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dlist,D1
- MOVEA.L _DOSBase,A6
- JSR -702(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeDosObject(type_ : ULONG; ptr : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L type_,D1
- MOVE.L ptr,D2
- MOVEA.L _DOSBase,A6
- JSR -234(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION FWrite(fh : LONGINT; block : POINTER; blocklen : ULONG; number : ULONG) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L block,D2
- MOVE.L blocklen,D3
- MOVE.L number,D4
- MOVEA.L _DOSBase,A6
- JSR -330(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetArgStr : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -534(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetConsoleTask : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -510(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetCurrentDirName(buf : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L buf,D1
- MOVE.L len,D2
- MOVEA.L _DOSBase,A6
- JSR -564(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION GetDeviceProc(const name : pCHAR; dp : pDevProc) : pDevProc;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L dp,D2
- MOVEA.L _DOSBase,A6
- JSR -642(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetFileSysTask : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -522(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetProgramDir : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -600(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetProgramName(buf : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L buf,D1
- MOVE.L len,D2
- MOVEA.L _DOSBase,A6
- JSR -576(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION GetPrompt(buf : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L buf,D1
- MOVE.L len,D2
- MOVEA.L _DOSBase,A6
- JSR -588(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION GetVar(const name : pCHAR; buffer : pCHAR; size : LONGINT; flags : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L buffer,D2
- MOVE.L size,D3
- MOVE.L flags,D4
- MOVEA.L _DOSBase,A6
- JSR -906(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION Info(lock : LONGINT; parameterBlock : pInfoData) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L parameterBlock,D2
- MOVEA.L _DOSBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION Inhibit(const name : pCHAR; onoff : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L onoff,D2
- MOVEA.L _DOSBase,A6
- JSR -726(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION InternalLoadSeg(fh : LONGINT; table : LONGINT;const funcarray : pLONGINT; VAR stack : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D0
- MOVEA.L table,A0
- MOVEA.L funcarray,A1
- MOVEA.L stack,A2
- MOVEA.L _DOSBase,A6
- JSR -756(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION InternalUnLoadSeg(seglist : LONGINT; freefunc : tPROCEDURE) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L seglist,D1
- MOVEA.L freefunc,A1
- MOVEA.L _DOSBase,A6
- JSR -762(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IoErr : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION IsFileSystem(const name : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -708(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsInteractive(file_ : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVEA.L _DOSBase,A6
- JSR -216(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION LoadSeg(const name : pCHAR) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -150(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION Lock(const name : pCHAR; type_ : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L type_,D2
- MOVEA.L _DOSBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION LockDosList(flags : ULONG) : pDosList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L flags,D1
- MOVEA.L _DOSBase,A6
- JSR -654(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION LockRecord(fh : LONGINT; offset : ULONG; length : ULONG; mode : ULONG; timeout : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L offset,D2
- MOVE.L length,D3
- MOVE.L mode,D4
- MOVE.L timeout,D5
- MOVEA.L _DOSBase,A6
- JSR -270(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION LockRecords(recArray : pRecordLock; timeout : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L recArray,D1
- MOVE.L timeout,D2
- MOVEA.L _DOSBase,A6
- JSR -276(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION MakeDosEntry(const name : pCHAR; type_ : LONGINT) : pDosList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L type_,D2
- MOVEA.L _DOSBase,A6
- JSR -696(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION MakeLink(const name : pCHAR; dest : LONGINT; soft : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L dest,D2
- MOVE.L soft,D3
- MOVEA.L _DOSBase,A6
- JSR -444(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE MatchEnd(anchor : pAnchorPath);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L anchor,D1
- MOVEA.L _DOSBase,A6
- JSR -834(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION MatchFirst(const pat : pCHAR; anchor : pAnchorPath) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L pat,D1
- MOVE.L anchor,D2
- MOVEA.L _DOSBase,A6
- JSR -822(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION MatchNext(anchor : pAnchorPath) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L anchor,D1
- MOVEA.L _DOSBase,A6
- JSR -828(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION MatchPattern(const pat : pCHAR; str : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L pat,D1
- MOVE.L str,D2
- MOVEA.L _DOSBase,A6
- JSR -846(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION MatchPatternNoCase(const pat : pCHAR; str : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L pat,D1
- MOVE.L str,D2
- MOVEA.L _DOSBase,A6
- JSR -972(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION MaxCli : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -552(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NameFromFH(fh : LONGINT; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L buffer,D2
- MOVE.L len,D3
- MOVEA.L _DOSBase,A6
- JSR -408(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION NameFromLock(lock : LONGINT; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L buffer,D2
- MOVE.L len,D3
- MOVEA.L _DOSBase,A6
- JSR -402(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION NewLoadSeg(const file_ : pCHAR;const tags : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -768(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NewLoadSegTagList(const file_ : pCHAR;const tags : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -768(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NextDosEntry(const dlist : pDosList; flags : ULONG) : pDosList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dlist,D1
- MOVE.L flags,D2
- MOVEA.L _DOSBase,A6
- JSR -690(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenFromLock(lock : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -378(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ParentDir(lock : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -210(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ParentOfFH(fh : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -384(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ParsePattern(const pat : pCHAR; buf : pCHAR; buflen : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L pat,D1
- MOVE.L buf,D2
- MOVE.L buflen,D3
- MOVEA.L _DOSBase,A6
- JSR -840(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ParsePatternNoCase(const pat : pCHAR; buf : pCHAR; buflen : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L pat,D1
- MOVE.L buf,D2
- MOVE.L buflen,D3
- MOVEA.L _DOSBase,A6
- JSR -966(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION PathPart(const path : pCHAR) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L path,D1
- MOVEA.L _DOSBase,A6
- JSR -876(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION PrintFault(code : LONGINT;const header : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L code,D1
- MOVE.L header,D2
- MOVEA.L _DOSBase,A6
- JSR -474(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION PutStr(const str : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L str,D1
- MOVEA.L _DOSBase,A6
- JSR -948(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION ReadArgs(const arg_template : pCHAR; arra : pLONGINT; args : pRDArgs) : pRDArgs;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L arg_template,D1
- MOVE.L arra,D2
- MOVE.L args,D3
- MOVEA.L _DOSBase,A6
- JSR -798(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ReadItem(const name : pCHAR; maxchars : LONGINT; cSource : pCSource) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L maxchars,D2
- MOVE.L cSource,D3
- MOVEA.L _DOSBase,A6
- JSR -810(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ReadLink(port : pMsgPort; lock : LONGINT;const path : pCHAR; buffer : pCHAR; size : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L lock,D2
- MOVE.L path,D3
- MOVE.L buffer,D4
- MOVE.L size,D5
- MOVEA.L _DOSBase,A6
- JSR -438(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION Relabel(const drive : pCHAR;const newname : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L drive,D1
- MOVE.L newname,D2
- MOVEA.L _DOSBase,A6
- JSR -720(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION RemAssignList(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L lock,D2
- MOVEA.L _DOSBase,A6
- JSR -636(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION RemDosEntry(dlist : pDosList) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dlist,D1
- MOVEA.L _DOSBase,A6
- JSR -672(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION RemSegment(seg : pSegment) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L seg,D1
- MOVEA.L _DOSBase,A6
- JSR -786(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE ReplyPkt(dp : pDosPacket; res1 : LONGINT; res2 : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dp,D1
- MOVE.L res1,D2
- MOVE.L res2,D3
- MOVEA.L _DOSBase,A6
- JSR -258(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION RunCommand(seg : LONGINT; stack : LONGINT;const paramptr : pCHAR; paramlen : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L seg,D1
- MOVE.L stack,D2
- MOVE.L paramptr,D3
- MOVE.L paramlen,D4
- MOVEA.L _DOSBase,A6
- JSR -504(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SameDevice(lock1 : LONGINT; lock2 : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock1,D1
- MOVE.L lock2,D2
- MOVEA.L _DOSBase,A6
- JSR -984(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SameLock(lock1 : LONGINT; lock2 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock1,D1
- MOVE.L lock2,D2
- MOVEA.L _DOSBase,A6
- JSR -420(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SelectInput(fh : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -294(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SelectOutput(fh : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -300(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SendPkt(dp : pDosPacket; port : pMsgPort; replyport : pMsgPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dp,D1
- MOVE.L port,D2
- MOVE.L replyport,D3
- MOVEA.L _DOSBase,A6
- JSR -246(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SetArgStr(const string_ : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L string_,D1
- MOVEA.L _DOSBase,A6
- JSR -540(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetComment(const name : pCHAR;const comment : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L comment,D2
- MOVEA.L _DOSBase,A6
- JSR -180(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetConsoleTask(const task : pMsgPort) : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L task,D1
- MOVEA.L _DOSBase,A6
- JSR -516(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetCurrentDirName(const name : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -558(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetFileDate(const name : pCHAR; date : pDateStamp) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L date,D2
- MOVEA.L _DOSBase,A6
- JSR -396(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetFileSize(fh : LONGINT; pos : LONGINT; mode : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L pos,D2
- MOVE.L mode,D3
- MOVEA.L _DOSBase,A6
- JSR -456(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetFileSysTask(const task : pMsgPort) : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L task,D1
- MOVEA.L _DOSBase,A6
- JSR -528(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetIoErr(result : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L result,D1
- MOVEA.L _DOSBase,A6
- JSR -462(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetMode(fh : LONGINT; mode : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L mode,D2
- MOVEA.L _DOSBase,A6
- JSR -426(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetOwner(const name : pCHAR; owner_info : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L owner_info,D2
- MOVEA.L _DOSBase,A6
- JSR -996(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetProgramDir(lock : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -594(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetProgramName(const name : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -570(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetPrompt(const name : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -582(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetProtection(const name : pCHAR; protect : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L protect,D2
- MOVEA.L _DOSBase,A6
- JSR -186(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetVar(const name : pCHAR; buffer : pCHAR; size : LONGINT; flags : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L buffer,D2
- MOVE.L size,D3
- MOVE.L flags,D4
- MOVEA.L _DOSBase,A6
- JSR -900(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetVBuf(fh : LONGINT; buff : pCHAR; type_ : LONGINT; size : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L buff,D2
- MOVE.L type_,D3
- MOVE.L size,D4
- MOVEA.L _DOSBase,A6
- JSR -366(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SplitName(const name : pCHAR; seperator : ULONG; buf : pCHAR; oldpos : LONGINT; size : LONGINT) : smallint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L seperator,D2
- MOVE.L buf,D3
- MOVE.L oldpos,D4
- MOVE.L size,D5
- MOVEA.L _DOSBase,A6
- JSR -414(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION StartNotify(notify : pNotifyRequest) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L notify,D1
- MOVEA.L _DOSBase,A6
- JSR -888(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION StrToDate(datetime : pDateTime) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L datetime,D1
- MOVEA.L _DOSBase,A6
- JSR -750(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION StrToLong(const string_ : pCHAR; VAR value : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L string_,D1
- MOVE.L value,D2
- MOVEA.L _DOSBase,A6
- JSR -816(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SystemTagList(const command : pCHAR;const tags : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L command,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -606(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSSystem(const command : pCHAR;const tags : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L command,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -606(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION UnGetC(fh : LONGINT; character : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L character,D2
- MOVEA.L _DOSBase,A6
- JSR -318(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE UnLoadSeg(seglist : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L seglist,D1
- MOVEA.L _DOSBase,A6
- JSR -156(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE UnLock(lock : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE UnLockDosList(flags : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L flags,D1
- MOVEA.L _DOSBase,A6
- JSR -660(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION UnLockRecord(fh : LONGINT; offset : ULONG; length : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L offset,D2
- MOVE.L length,D3
- MOVEA.L _DOSBase,A6
- JSR -282(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION UnLockRecords(recArray : pRecordLock) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L recArray,D1
- MOVEA.L _DOSBase,A6
- JSR -288(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION VFPrintf(fh : LONGINT;const format : pCHAR;const argarray : POINTER) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L format,D2
- MOVE.L argarray,D3
- MOVEA.L _DOSBase,A6
- JSR -354(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE VFWritef(fh : LONGINT;const format : pCHAR;const argarray : pLONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L format,D2
- MOVE.L argarray,D3
- MOVEA.L _DOSBase,A6
- JSR -348(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION VPrintf(const format : pCHAR; const argarray : POINTER) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L format,D1
- MOVE.L argarray,D2
- MOVEA.L _DOSBase,A6
- JSR -954(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION WaitForChar(file_ : LONGINT; timeout : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L timeout,D2
- MOVEA.L _DOSBase,A6
- JSR -204(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION WaitPkt : pDosPacket;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -252(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION WriteChars(const buf : pCHAR; buflen : ULONG) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L buf,D1
- MOVE.L buflen,D2
- MOVEA.L _DOSBase,A6
- JSR -942(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-
-FUNCTION AddBuffers(const name : string; number : LONGINT) : BOOLEAN;
-begin
- AddBuffers := AddBuffers(pas2c(name), number);
-end;
-
-FUNCTION AddPart(dirname : string;const filename : pCHAR; size : ULONG) : BOOLEAN;
-begin
- AddPart := AddPart(pas2c(dirname),filename,size);
-end;
-
-FUNCTION AddPart(dirname : pCHAR;const filename : string; size : ULONG) : BOOLEAN;
-begin
- AddPart := AddPart(dirname,pas2c(filename),size);
-end;
-
-FUNCTION AddPart(dirname : string;const filename : string; size : ULONG) : BOOLEAN;
-begin
- AddPart := AddPart(pas2c(dirname),pas2c(filename),size);
-end;
-
-FUNCTION AssignAdd(const name : string; lock : LONGINT) : BOOLEAN;
-begin
- AssignAdd := AssignAdd(pas2c(name),lock);
-end;
-
-FUNCTION AssignLate(const name : string;const path : pCHAR) : BOOLEAN;
-begin
- AssignLate := AssignLate(pas2c(name),path);
-end;
-
-FUNCTION AssignLate(const name : pChar;const path : string) : BOOLEAN;
-begin
- AssignLate := AssignLate(name,pas2c(path));
-end;
-
-FUNCTION AssignLate(const name : string;const path : string) : BOOLEAN;
-begin
- AssignLate := AssignLate(pas2c(name),pas2c(path));
-end;
-
-FUNCTION AssignLock(const name : string; lock : LONGINT) : BOOLEAN;
-begin
- AssignLock := AssignLock(pas2c(name),lock);
-end;
-
-FUNCTION AssignPath(const name : string;const path : pCHAR) : BOOLEAN;
-begin
- AssignPath := AssignPath(pas2c(name),path);
-end;
-
-FUNCTION AssignPath(const name : pCHAR;const path : string) : BOOLEAN;
-begin
- AssignPath := AssignPath(name,pas2c(path));
-end;
-
-FUNCTION AssignPath(const name : string;const path : string) : BOOLEAN;
-begin
- AssignPath := AssignPath(pas2c(name),pas2c(path));
-end;
-
-FUNCTION CreateDir(const name : string) : LONGINT;
-begin
- CreateDir := CreateDir(pas2c(name));
-end;
-
-FUNCTION CreateProc(const name : string; pri : LONGINT; segList : LONGINT; stackSize : LONGINT) : pMsgPort;
-begin
- CreateProc := CreateProc(pas2c(name),pri,segList,stackSize);
-end;
-
-FUNCTION DeleteFile(const name : string) : BOOLEAN;
-begin
- DeleteFile := DeleteFile(pas2c(name));
-end;
-
-FUNCTION DeleteVar(const name : string; flags : ULONG) : BOOLEAN;
-begin
- DeleteVar := DeleteVar(pas2c(name),flags);
-end;
-
-FUNCTION DeviceProc(const name : string) : pMsgPort;
-begin
- Deviceproc := DeviceProc(pas2c(name));
-end;
-
-FUNCTION DOSOpen(const name : string; accessMode : LONGINT) : LONGINT;
-begin
- DOSOpen := DOSOpen(pas2c(name),accessMode);
-end;
-
-FUNCTION DOSRename(const oldName : string;const newName : pCHAR) : Boolean;
-begin
- DOSRename := DOSRename(pas2c(oldName),newName);
-end;
-
-FUNCTION DOSRename(const oldName : pCHAR;const newName : string) : Boolean;
-begin
- DOSRename := DOSRename(oldName,pas2c(newName));
-end;
-
-FUNCTION DOSRename(const oldName : string;const newName : string) : Boolean;
-begin
- DOSRename := DOSRename(pas2c(oldName),pas2c(newName));
-end;
-
-FUNCTION Execute(const string_ : string; file_ : LONGINT; file2 : LONGINT) : BOOLEAN;
-begin
- Execute := Execute(pas2c(string_),file_ ,file2);
-end;
-
-FUNCTION Fault(code : LONGINT; header : string; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-begin
- Fault := Fault(code,pas2c(header),buffer,len);
-end;
-
-FUNCTION FilePart(const path : string) : pCHAR;
-begin
- FilePart := FilePart(pas2c(path));
-end;
-
-FUNCTION FindArg(const keyword : string;const arg_template : pCHAR) : LONGINT;
-begin
- FindArg := FindArg(pas2c(keyword),arg_template);
-end;
-
-FUNCTION FindArg(const keyword : pCHAR;const arg_template : string) : LONGINT;
-begin
- FindArg := FindArg(keyword,pas2c(arg_template));
-end;
-
-FUNCTION FindArg(const keyword : string;const arg_template : string) : LONGINT;
-begin
- FindArg := FindArg(pas2c(keyword),pas2c(arg_template));
-end;
-
-FUNCTION FindDosEntry(const dlist : pDosList;const name : string; flags : ULONG) : pDosList;
-begin
- FindDosEntry := FindDosEntry(dlist,pas2c(name),flags);
-end;
-
-FUNCTION FindSegment(const name : string;const seg : pSegment; system : LONGINT) : pSegment;
-begin
- FindSegment := FindSegment(pas2c(name),seg,system);
-end;
-
-FUNCTION FindVar(const name : string; type_ : ULONG) : pLocalVar;
-begin
- FindVar := FindVar(pas2c(name),type_);
-end;
-
-FUNCTION Format(const filesystem : string;const volumename : pCHAR; dostype : ULONG) : BOOLEAN;
-begin
- Format := Format(pas2c(filesystem),volumename,dostype);
-end;
-
-FUNCTION Format(const filesystem : pCHAR;const volumename : string; dostype : ULONG) : BOOLEAN;
-begin
- Format := Format(filesystem,pas2c(volumename),dostype);
-end;
-
-FUNCTION Format(const filesystem : string;const volumename : string; dostype : ULONG) : BOOLEAN;
-begin
- Format := Format(pas2c(filesystem),pas2c(volumename),dostype);
-end;
-
-FUNCTION FPuts(fh : LONGINT;const str : string) : BOOLEAN;
-begin
- FPuts := FPuts(fh,pas2c(str));
-end;
-
-FUNCTION GetDeviceProc(const name : string; dp : pDevProc) : pDevProc;
-begin
- GetDeviceProc := GetDeviceProc(pas2c(name),dp);
-end;
-
-FUNCTION GetVar(const name : string; buffer : pCHAR; size : LONGINT; flags : LONGINT) : LONGINT;
-begin
- GetVar := GetVar(pas2c(name),buffer,size,flags);
-end;
-
-FUNCTION Inhibit(const name : string; onoff : LONGINT) : BOOLEAN;
-begin
- Inhibit := Inhibit(pas2c(name),onoff);
-end;
-
-FUNCTION IsFileSystem(const name : string) : BOOLEAN;
-begin
- IsFileSystem := IsFileSystem(pas2c(name));
-end;
-
-FUNCTION LoadSeg(const name : string) : LONGINT;
-begin
- LoadSeg := LoadSeg(pas2c(name));
-end;
-
-FUNCTION Lock(const name : string; type_ : LONGINT) : LONGINT;
-begin
- Lock := Lock(pas2c(name),type_);
-end;
-
-FUNCTION MakeDosEntry(const name : string; type_ : LONGINT) : pDosList;
-begin
- MakeDosEntry := MakeDosEntry(pas2c(name),type_);
-end;
-
-FUNCTION MakeLink(const name : string; dest : LONGINT; soft : LONGINT) : BOOLEAN;
-begin
- MakeLink := MakeLink(pas2c(name),dest,soft);
-end;
-
-FUNCTION MatchFirst(const pat : string; anchor : pAnchorPath) : LONGINT;
-begin
- MatchFirst := MatchFirst(pas2c(pat),anchor);
-end;
-
-FUNCTION MatchPattern(const pat : string; str : pCHAR) : BOOLEAN;
-begin
- MatchPattern := MatchPattern(pas2c(pat),str);
-end;
-
-FUNCTION MatchPattern(const pat : pCHAR; str : string) : BOOLEAN;
-begin
- MatchPattern := MatchPattern(pat,pas2c(str));
-end;
-
-FUNCTION MatchPattern(const pat : string; str : string) : BOOLEAN;
-begin
- MatchPattern := MatchPattern(pas2c(pat),pas2c(str));
-end;
-
-FUNCTION MatchPatternNoCase(const pat : string; str : pCHAR) : BOOLEAN;
-begin
- MatchPatternNoCase := MatchPatternNoCase(pas2c(pat),str);
-end;
-
-FUNCTION MatchPatternNoCase(const pat : pCHAR; str : string) : BOOLEAN;
-begin
- MatchPatternNoCase := MatchPatternNoCase(pat,pas2c(str));
-end;
-
-FUNCTION MatchPatternNoCase(const pat : string; str : string) : BOOLEAN;
-begin
- MatchPatternNoCase := MatchPatternNoCase(pas2c(pat),pas2c(str));
-end;
-
-FUNCTION NewLoadSeg(const file_ : string;const tags : pTagItem) : LONGINT;
-begin
- NewLoadSeg := NewLoadSeg(pas2c(file_),tags);
-end;
-
-FUNCTION NewLoadSegTagList(const file_ : string;const tags : pTagItem) : LONGINT;
-begin
- NewLoadSegTagList := NewLoadSegTagList(pas2c(file_),tags);
-end;
-
-FUNCTION PathPart(const path : string) : pCHAR;
-begin
- PathPart := PathPart(pas2c(path));
-end;
-
-FUNCTION PrintFault(code : LONGINT;const header : string) : BOOLEAN;
-begin
- PrintFault := PrintFault(code,pas2c(header));
-end;
-
-FUNCTION PutStr(const str : string) : BOOLEAN;
-begin
- PutStr := PutStr(pas2c(str));
-end;
-
-FUNCTION ReadArgs(const arg_template : string; arra : pLONGINT; args : pRDArgs) : pRDArgs;
-begin
- ReadArgs := ReadArgs(pas2c(arg_template),arra,args);
-end;
-
-FUNCTION ReadItem(const name : string; maxchars : LONGINT; cSource : pCSource) : LONGINT;
-begin
- ReadItem := ReadItem(pas2c(name),maxchars,cSource);
-end;
-
-FUNCTION ReadLink(port : pMsgPort; lock : LONGINT;const path : string; buffer : pCHAR; size : ULONG) : BOOLEAN;
-begin
- ReadLink := ReadLink(port,lock,pas2c(path),buffer,size);
-end;
-
-FUNCTION Relabel(const drive : string;const newname : pCHAR) : BOOLEAN;
-begin
- Relabel := Relabel(pas2c(drive),newname);
-end;
-
-FUNCTION Relabel(const drive : pCHAR;const newname : string) : BOOLEAN;
-begin
- Relabel := Relabel(drive,pas2c(newname));
-end;
-
-FUNCTION Relabel(const drive : string;const newname : string) : BOOLEAN;
-begin
- Relabel := Relabel(pas2c(drive),pas2c(newname));
-end;
-
-FUNCTION RemAssignList(const name : string; lock : LONGINT) : BOOLEAN;
-begin
- RemAssignList := RemAssignList(pas2c(name),lock);
-end;
-
-FUNCTION RunCommand(seg : LONGINT; stack : LONGINT;const paramptr : string; paramlen : LONGINT) : LONGINT;
-begin
- RunCommand := RunCommand(seg,stack,pas2c(paramptr),paramlen);
-end;
-
-FUNCTION SetArgStr(const string_ : string) : BOOLEAN;
-begin
- SetArgStr := SetArgStr(pas2c(string_));
-end;
-
-FUNCTION SetComment(const name : string;const comment : pCHAR) : BOOLEAN;
-begin
- SetComment := SetComment(pas2c(name),comment);
-end;
-
-FUNCTION SetComment(const name : pCHAR;const comment : string) : BOOLEAN;
-begin
- SetComment := SetComment(name,pas2c(comment));
-end;
-
-FUNCTION SetComment(const name : string;const comment : string) : BOOLEAN;
-begin
- SetComment := SetComment(pas2c(name),pas2c(comment));
-end;
-
-FUNCTION SetCurrentDirName(const name : string) : BOOLEAN;
-begin
- SetCurrentDirName := SetCurrentDirName(pas2c(name));
-end;
-
-FUNCTION SetFileDate(const name : string; date : pDateStamp) : BOOLEAN;
-begin
- SetFileDate := SetFileDate(pas2c(name),date);
-end;
-
-FUNCTION SetOwner(const name : string; owner_info : LONGINT) : BOOLEAN;
-begin
- SetOwner := SetOwner(pas2c(name),owner_info);
-end;
-
-FUNCTION SetProgramName(const name : string) : BOOLEAN;
-begin
- SetProgramName := SetProgramName(pas2c(name));
-end;
-
-FUNCTION SetPrompt(const name : string) : BOOLEAN;
-begin
- SetPrompt := SetPrompt(pas2c(name));
-end;
-
-FUNCTION SetProtection(const name : string; protect : LONGINT) : BOOLEAN;
-begin
- SetProtection := SetProtection(pas2c(name),protect);
-end;
-
-FUNCTION SetVar(const name : string; buffer : pCHAR; size : LONGINT; flags : LONGINT) : BOOLEAN;
-begin
- SetVar := SetVar(pas2c(name),buffer,size,flags);
-end;
-
-FUNCTION SplitName(const name : string; seperator : ULONG; buf : pCHAR; oldpos : LONGINT; size : LONGINT) : smallint;
-begin
- SplitName := SplitName(pas2c(name), seperator,buf,oldpos,size);
-end;
-
-FUNCTION StrToLong(const string_ : string; VAR value : LONGINT) : LONGINT;
-begin
- StrToLong := StrToLong(pas2c(string_),value);
-end;
-
-FUNCTION SystemTagList(const command : string;const tags : pTagItem) : LONGINT;
-begin
- SystemTagList := SystemTagList(pas2c(command),tags);
-end;
-
-FUNCTION DOSSystem(const command : string;const tags : pTagItem) : LONGINT;
-begin
- DOSSystem := DOSSystem(pas2c(command),tags);
-end;
-}
-
-FUNCTION Cli : pCommandLineInterface;
-type
- TLocalCall = function(LibBase: Pointer): pCommandLineInterface; stdcall;
-var
- Call: TLocalCall;
-begin
- Call := TLocalCall(GetLibAdress(AOS_DOSBase, 82));
- Cli := Call(AOS_DOSBase);
-end;
-
-PROCEDURE UnLock(lock : LONGINT);
-type
- TLocalCall = procedure(lock : LONGINT; LibBase: Pointer); stdcall;
-var
- Call: TLocalCall;
-begin
- Call := TLocalCall(GetLibAdress(AOS_DOSBase, 15));
- Call(lock, AOS_DOSBase);
-end;
-
-FUNCTION NameFromLock(lock : LONGINT; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-type
- TLocalCall = function(lock : LONGINT; buffer : pCHAR; len : LONGINT; LibBase: Pointer): BOOLEAN; stdcall;
-var
- Call: TLocalCall;
-begin
- Call := TLocalCall(GetLibAdress(AOS_DOSBase, 67));
- NameFromLock := Call(lock, buffer, len, AOS_DOSBase);
-end;
-
-PROCEDURE DOSDelay(timeout : LONGINT);
-type
- TLocalCall = procedure(timeout : LONGINT; LibBase: Pointer); stdcall;
-var
- Call: TLocalCall;
-begin
- Call := TLocalCall(GetLibAdress(AOS_DOSBase, 33));
- Call(timeout, AOS_DOSBase);
-end;
-
-
-END. (* UNIT DOS *)
-
-