Browse Source

it's now possible to compile the RTL again for AmigaOS/PowerPC. entirely untested, but it builds at least

git-svn-id: trunk@33252 -
Károly Balogh 9 years ago
parent
commit
c5907d5f71
4 changed files with 36 additions and 12 deletions
  1. 13 6
      rtl/amiga/powerpc/doslibf.inc
  2. 2 2
      rtl/amiga/powerpc/execd.inc
  3. 19 4
      rtl/amiga/powerpc/execf.inc
  4. 2 0
      rtl/amiga/system.pp

+ 13 - 6
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;
 

+ 2 - 2
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)

+ 19 - 4
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;

+ 2 - 0
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...