diff --git a/rtl/amiga/powerpc/doslibf.inc b/rtl/amiga/powerpc/doslibf.inc index acea7e7a09..fdd03bf4c4 100644 --- a/rtl/amiga/powerpc/doslibf.inc +++ b/rtl/amiga/powerpc/doslibf.inc @@ -21,26 +21,33 @@ function dosInput: longint; syscall IDOS 92; function dosOutput: longint; syscall IDOS 96; function dosSeek(_file: longint;position: longint;offset: longint): longint; syscall IDOS 100; function dosDeleteFile(name: PChar): LongBool; syscall IDOS 104; -function dosRename(oldName: PChar;newName: PChar): LongBool; syscall IDOS 108; +function dosRename(oldName: PChar;newName: PChar): longint; syscall IDOS 108; function Lock(name: PChar;_type: longint): longint; syscall IDOS 112; procedure UnLock(lock: longint); syscall IDOS 116; -function Examine(lock: longint; fileInfoBlock: PFileInfoBlock): LongBool; syscall IDOS 124; +function Examine(lock: longint; fileInfoBlock: PFileInfoBlock): LongInt; syscall IDOS 124; -function Info(lock: longint; parameterBlock: PInfoData): LongBool; syscall IDOS 132; +function Info(lock: longint; parameterBlock: PInfoData): LongInt; syscall IDOS 132; function dosCreateDir(name: PChar): longint; syscall IDOS 136; function CurrentDir(lock: longint): longint; syscall IDOS 140; function IoErr: longint; syscall IDOS 144; -function SetProtection(name: PChar; protect: longword): LongBool; syscall IDOS 180; +function SetProtection(name: PChar; protect: longword): LongInt; syscall IDOS 180; function DateStamp(date: PDateStamp): PDateStamp; syscall IDOS 184; +procedure DOSDelay(timeout: LongInt); syscall IDOS 188; -function SetFileDate(name: PChar; date: PDateStamp): LongBool; syscall IDOS 356; +function AllocDosObject(type1: Cardinal; tags : PTagItem): Pointer; syscall IDOS 208; +procedure FreeDosObject(type1: Cardinal; ptr : Pointer); syscall IDOS 220; + +function ExamineFH(fh : BPTR; fib: PFileInfoBlock): LongBool; syscall IDOS 352; +function SetFileDate(name: PChar; date: PDateStamp): LongBool; syscall IDOS 356; { Seems this got renamed to SetDate() in OS4? } function NameFromLock(lock: longint; buffer: PChar; len: longint): LongBool; syscall IDOS 360; -function NameFromFH(fh: longint; buffer: PChar; len: longint): longint; syscall IDOS 364; +function NameFromFH(fh: longint; buffer: PChar; len: longint): LongBool; syscall IDOS 364; function SetFileSize(fh: longint; pos: longint; mode: longint): longint; syscall IDOS 396; +function CreateNewProc(tags: PTagItem): PProcess; syscall IDOS 424; + function GetArgStr: PChar; syscall IDOS 456; function SetArgStr(_string: PChar): PChar; syscall IDOS 460; diff --git a/rtl/amiga/powerpc/execd.inc b/rtl/amiga/powerpc/execd.inc index 078c38d5aa..105e12a8b3 100644 --- a/rtl/amiga/powerpc/execd.inc +++ b/rtl/amiga/powerpc/execd.inc @@ -19,9 +19,9 @@ {include emuld.inc} {$include utild1.inc} -{$WARNING Ugly hack, remove this ASAP!} +{.$WARNING Ugly hack, remove this ASAP!} type - PInterface = Pointer; + POS4Interface = Pointer; { * exec node definitions (V50) diff --git a/rtl/amiga/powerpc/execf.inc b/rtl/amiga/powerpc/execf.inc index dc9000d602..e8f9f4fde9 100644 --- a/rtl/amiga/powerpc/execf.inc +++ b/rtl/amiga/powerpc/execf.inc @@ -19,9 +19,13 @@ function CreatePool(memFlags: longword; puddleSize: longword; threshSize: longwo procedure DeletePool(poolHeader: Pointer); syscall IExec 140; +procedure Forbid; syscall IExec 156; + procedure execFreeMem(memoryBlock: Pointer; byteSize: longword); syscall IExec 164; procedure FreePooled(poolHeader: Pointer;memory: Pointer;memSize: longword); syscall IExec 168; - + +procedure Permit; syscall IExec 200; + function FindTask(name: PChar): PTask; syscall IExec 260; function AllocSignal(signalNum: shortint): shortint; syscall IExec 276; @@ -37,14 +41,25 @@ procedure RemPort(port: PMsgPort); syscall IExec 332; procedure ReplyMsg(message: PMessage); syscall IExec 336; function WaitPort(port: PMsgPort): PMessage; syscall IExec 340; +function AttemptSemaphore(sigSem: PSignalSemaphore): Cardinal; syscall IExec 352; + +procedure InitSemaphore(sigSem: PSignalSemaphore); syscall IExec 364; +procedure ObtainSemaphore(sigSem: PSignalSemaphore); syscall IExec 368; +procedure ObtainSemaphoreShared(sigSem: PSignalSemaphore); syscall IExec 376; + +procedure ReleaseSemaphore(sigSem: PSignalSemaphore); syscall IExec 388; + function OpenLibrary(name: PChar; version: longword): PLibrary; syscall IExec 424; function CloseLibrary(_library: PLibrary): Pointer; syscall IExec 428; -function GetInterface(_library: PLibrary;name: PChar;version: longword;taglist: PTagItem): PInterface; syscall IExec 448; -function GetInterfaceTags(_library: PLibrary;name: PChar;version: longword): PInterface; {varargs;} syscall IExec 452; {$WARNING varargs should be possible with syscalls too on OS4} -procedure DropInterface(_interface: PInterface); syscall IExec 456; +function GetInterface(_library: PLibrary;name: PChar;version: longword;taglist: PTagItem): POS4Interface; syscall IExec 448; +function GetInterfaceTags(_library: PLibrary;name: PChar;version: longword): POS4Interface; {varargs;} syscall IExec 452; {$WARNING varargs should be possible with syscalls too on OS4} +procedure DropInterface(_interface: POS4Interface); syscall IExec 456; function OpenDevice(devName: PChar; unitNumber: longword;ioRequest: PIORequest; flags: longword): longint; syscall IExec 504; function CloseDevice(ioRequest: PIORequest): Pointer; syscall IExec 508; function DoIO(ioRequest: PIORequest): shortint; syscall IExec 528; + +{$WARNING FIXME: the offset is dummy, was too lazy to calculate for now } +procedure RawPutChar(d0arg: Char); syscall IExec 4096; diff --git a/rtl/amiga/system.pp b/rtl/amiga/system.pp index 2ac051b78e..96e226978c 100644 --- a/rtl/amiga/system.pp +++ b/rtl/amiga/system.pp @@ -114,7 +114,9 @@ implementation {$I system.inc} {$I osdebug.inc} +{$ifdef cpum68k} {$I m68kamiga.inc} +{$endif} {$IFDEF AMIGAOS4} // Required to allow opening of utility library interface...