
unit Dos;

INTERFACE

const
DOSNAME='dos.library';
DOSTRUE=-1;
DOSFALSE=0;
MODE_OLDFILE=1005;
MODE_NEWFILE=1006;
OFFSET_BEGINNING=-1;
OFFSET_CURRENT=0;
OFFSET_END=1;
OFFSET_BEGINING=OFFSET_BEGINNING;
BITSPERBYTE=8;
BYTESPERLONG=4;
BITSPERLONG=32;
_MAXINT=$7FFFFFFF;
_MININT=$80000000;
SHARED_LOCK=-2;
ACCESS_READ=-2;
EXCLUSIVE_LOCK=-1;
ACCESS_WRITE=-1;
TICKS_PER_SECOND=50;
FIBB_ARCHIVE=4;
FIBB_READ=3;
FIBB_WRITE=2;
FIBB_EXECUTE=1;
FIBB_DELETE=0;
FIBF_ARCHIVE=$10;
FIBF_READ=$8;
FIBF_WRITE=$4;
FIBF_EXECUTE=$2;
FIBF_DELETE=$1;
TYPE
p_DateStamp=^DateStamp;
DateStamp=Record
 ds_Days,ds_Minute,ds_Tick:Long
End;
p_FileInfoBlock=^FileInfoBlock;
FileInfoBlock=Record
 fib_DiskKey,fib_DirEntryType:Long;
 fib_FileName:String[108];
 fib_Protection,fib_EntryType,fib_Size,fib_NumBlocks:Long;
 fib_Date:DateStamp;
 fib_Comment:String[80];
 padding:String[36];
End;
BPTR=Long;
BSTR=Long;
{Function BADDR(p:ptr):BPTR;
 Begin BADDR:=Long(p)div 4 end;
TYPE}
p_InfoData=^InfoData;
InfoData=Record
 id_NumSoftErrors,id_UnitNumber,id_DiskState:Long;
 id_NumBlocks,id_NumBlocksUsed,id_BytesPerBlock,id_DiskType:Long;
 id_VolumeNode:BPTR;
 id_InUse:Long
End;
CONST
 ID_WRITE_PROTECTED=80;
 ID_VALIDATING=81;
 ID_VALIDATED=82;
 ID_NO_DISK_PRESENT=-1;
 ID_UNREADABLE_DISK='BAD'\0;
 ID_DOS_DISK0='DOS'\0;
 ID_NOT_REALLY_DOS='NDOS';
 ID_KICKSTART_DISK='KICK';
 ERROR_NO_FREE_STORE=103;
 ERROR_TASK_TABLE_FULL=105;
 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;
 RETURN_OK=0;
 RETURN_WARN=5;
 RETURN_ERROR=10;
 RETURN_FAIL=20;
 SIGBREAKB_CTRL_C=12;
 SIGBREAKB_CTRL_D=13;
 SIGBREAKB_CTRL_E=14;
 SIGBREAKB_CTRL_F=15;
 SIGBREAKF_CTRL_C=$1000;
 SIGBREAKF_CTRL_D=$2000;
 SIGBREAKF_CTRL_E=$4000;
 SIGBREAKF_CTRL_F=$8000;

Library Dosbase:
 -30:Function Open(d1:str;d2:Long):BPTR;
 -36:Procedure _Close(d1:BPTR);
 -42:Function _Read(d1:BPTR; d2:Ptr; d3:Long):Long;
 -48:Function _Write(d1:BPTR; d2:Ptr; d3:Long):Long;
 -54:Function _Input:BPTR;
 -60:Function _Output:BPTR;
 -66:Function _Seek(d1:BPTR; d2,d3:Long):Long;
 -30:Function DosOpen(d1:str;d2:Long):BPTR;
 -36:Procedure DosClose(d1:BPTR);
 -42:Function DosRead(d1:BPTR; d2:Ptr; d3:Long):Long;
 -48:Function DosWrite(d1:BPTR; d2:Ptr; d3:Long):Long;
 -54:Function DosInput:BPTR;
 -60:Function DosOutput:BPTR;
 -66:Function DosSeek(d1:BPTR; d2,d3:Long):Long;
 -72:Function DeleteFile(d1:Str):integer;
 -78:Function Rename(d1,d2:Str):integer;
 -84:Function Lock(d1:Str; d2:Long):BPTR;
 -90:Procedure Unlock(d1:BPTR);
 -96:Function DupLock(d1:BPTR):BPTR;
-102:Function Examine(d1:BPTR; d2:p_FileInfoBlock):integer;
-108:Function ExNext(d1:BPTR;d2:p_FileInfoBlock):integer;
-114:Function Info(d1:BPTR; d2:p_InfoData):integer;
-120:Function CreateDir(d1:Str):BPTR;
-126:Function CurrentDir(d1:BPTR):BPTR;
-132:Function IOErr:integer;
-138:Function CreateProc(d1:Str; d2:integer; d3,d4:Ptr):Ptr;
-144:Procedure _Exit(d1:Long);
-144:Procedure DosExit(d1:Long);
-150:Function LoadSeg(d1:Str):Ptr;
-156:Procedure UnLoadSeg(d1:Ptr);
-162:Function GetPacket(d1:Long):Ptr;
-168:Function QueuePacket(d1:Ptr):integer;
-174:Function DeviceProc(d1:Str):Ptr;
-180:Function SetComment(d1,d2:Str):integer;
-186:Function SetProtection(d1:Str; d2:Long):integer;
-192:Procedure _DateStamp(d1:p_DateStamp);
-198:Procedure _Delay(d1:Long);
-204:Function WaitForChar(d1:BPTR; d2:Long):integer;
-210:Function ParentDir(d1:BPTR):BPTR;
-216:Function IsInteractive(d1:BPTR):integer;
-222:Function Execute(d1:Str; d2,d3:BPTR):integer
End;

IMPLEMENTATION

end.

