Forum > Operating Systems

Lazarus for RISC OS

<< < (33/37) > >>

micken:

--- Quote ---Note that multiple values can be returned by using:
--- End quote ---

You still need to get the return values from registers, which is different for each swi :) But I might uneducated, maybe your way works.. ( I would say that it still need a register array pointer, setting registers to arguments, which is fine in a library function. You still need the runswi at the lowest level.


--- Quote ---I did notice, for example in the window block that  "Title foreground and window frame colour", "Title background colour" as well as others have a different size. In your example you combined them into a
--- End quote ---

That is true. But in the end , most of riscos blocks are 4 bytes for each field.

TRon:

--- Quote from: micken on August 15, 2023, 08:17:43 am ---
--- Quote ---Note that multiple values can be returned by using:
--- End quote ---

You still need to get the return values from registers, which is different for each swi :) But I might uneducated, maybe your way works.. ( I would say that it still need a register array pointer, setting registers to arguments, which is fine in a library function. You still need the runswi at the lowest level.

--- End quote ---
Nah, I am the uneducated one. The problem is that right now I can't see the trees in the forest. There might be some consistent use of (amount of) return registers, the same as that there could be for input (I would have to check each and every swi call for that).

If you are able to come up with something that works for you in a consistent and uniform way (for as far as possible) then please go with that for now and not waste too much time on declaring/translating each and every swi call right now (just what you need/want for these nice examples that you are sharing with us).

micken:

--- Quote --- If you are able to come up with something that works for you in a consistent and uniform way (for as far as possible) then please go with that for now and not waste too much time on declaring/translating each and every swi call right now.
--- End quote ---

I leave rtl bits to you... I can provide you with a list of swi's you need to map to the rtl functions.

About elfs and aifs .. I can run my aif with less than 1meg next slot. You need 5 for elf ( if I remember right). My window example uses 280K ram for the executable. It still allocates ram from module area.

Ehem wrong. I compared elfs with aif , they are the same. Although elf needed twice the next slot.

TRon:

--- Quote from: micken on August 15, 2023, 08:31:29 am ---I leave rtl bits to you... I can provide you with a list of swi's you need to map to the rtl functions.

--- End quote ---
That's ok to leave that to me. Would be greatly appreciated if you could provide a list.

Come to think of it,the swi calls seem to be separated in different groups when browsing to the documentations so in that regards there isn't any difference with specific units that fall into a particular category (just as libraries/libraryheaders do).

micken:
I just tried my pascal generated executable converted to aif. It worked on a 8meg ram system. riscos 5.x leaves me with 1m free after boot up :)

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version