From 3f74f97cd3ab6f663cf85660dc2a1c584a32bc5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Balogh?= Date: Sun, 6 Jun 2004 18:32:50 +0000 Subject: [PATCH] * initial revision --- rtl/morphos/notes.txt | 70 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 rtl/morphos/notes.txt diff --git a/rtl/morphos/notes.txt b/rtl/morphos/notes.txt new file mode 100644 index 0000000000..e270b3c632 --- /dev/null +++ b/rtl/morphos/notes.txt @@ -0,0 +1,70 @@ + +{ $Id$ } + +Notes about MorphOS version of Free Pascal: + +Stack: +======================================================================== + +Under MorphOS, the default stack is set to 256 kB. Stack size can be set +directly by the programmer with the compiler switch (-Cs), or with the +{$MEMORY} directive. The memory area for the stack is dynamically +allocated on program startup, so if you set this value too high, in low +memory situations your program may exit immediately on startup without +any further notice. + + +Syscalls: +======================================================================== + +Free Pascal currently supports ABox-style calls for MorphOS. Using +additional hand-written assembly is not needed to call any ABox library +function. However, you must declare every function you're going to use +by the following way: + +Var + my_LibBase: Pointer; + +function my_LibCall(param1: longint location 'd0', + param2: longint location 'd1'): LongInt; + SysCall my_LibBase 1234; + +Where my_LibBase is the library base returned by exec's OpenLibrary() +call, and 1234 is the call offset. Please note that offset values in +Free Pascal must be specified as positive values, and not negative as +shown in MorphOS SDK. + +The value after location can be any 68k registers from d0-d7/a0-a6. Note +that a7 and sp cannot be used. Register names are not case sensitive. +In SysCalls you must specify location for every arguments explicity. + +MOST IMPORTANT: You must open libraries explicitly _BEFORE_ using any +functions from it, because the compiler will not do it for you. Don't +forget to close libraries before you exit. + +Before declaring a SysCall function, please check the units provided +with FPC, the function you want to use might already be declared in one +of the units, and ready to use. + + +Alignment: +======================================================================== + +Record elements are aligned to DWORD (4 bytes) under MorphOS. Use +{$PACKRECORDS 2} if you need word aligned structures. For byte +aligned records, use packed record. + + +Thanks: +======================================================================== + +MorphOS port of Free Pascal Compiler was possible, because Genesi +S.a.r.l. provided a free Pegasos II/G4 machine to do +the developments on it. + +{ + $Log$ + Revision 1.1 2004-06-06 18:32:50 karoly + * initial revision + +}