Solarus-Games English Forum

Solarus => Bugs & Feature requests => Topic started by: zutokaza on October 04, 2015, 11:30:31 PM

Title: Kolibri OS port?
Post by: zutokaza on October 04, 2015, 11:30:31 PM
Hello,

Kolibri OS is the most popular Assembly Fasm Operating system.
http://kolibrios.org/en/

It would be another great operating system to port Solarus to.

Not many people know about this great OS and that is why I am posting the suggestion.

Sincerely,
Zuto







Title: Re: Kolibri OS port?
Post by: oclero on October 05, 2015, 07:33:38 PM
If you know how to do it, it would be cool indeed :)
Title: Re: Kolibri OS port?
Post by: zutokaza on October 07, 2015, 03:33:13 AM
I don't know much beyond the basics of Kolibri OS. The main reason is because most of the people working on it is Russian.

Although,

C, C++, Free Pascal, Forth, Lua and Python can be used on Kolibri. I am not sure about the Libriaries due to the Russian.
http://wiki.kolibrios.org/wiki/Development

Porting:
http://wiki.kolibrios.org/wiki/Porting_applications_to_KolibriOS

Might help:
https://translate.google.ru/translate?sl=ru&tl=en&js=y&prev=_t&hl=ru&ie=UTF-8&u=http%3A%2F%2Fwiki.kolibrios.org%2Fwiki%2FLibrary%2Fru&edit-text=&act=url
Title: Re: Kolibri OS port?
Post by: Zefk on October 16, 2016, 09:46:59 AM
Kolibri OS is making a C layer (http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fcontrib%2FC_Layer%2F&#a3b9ce1a54fea8efc839f777ce1b565cb). That might make it easier to port if possible. Also, converting C++ to asm (http://www.cplusplus.com/forum/beginner/59280/) is possible, but there will have to be modifications to the ASM code.
Title: Re: Kolibri OS port?
Post by: MetalZelda on October 16, 2016, 02:21:02 PM
There should be better way to port Solarus on this OS rather then using assembly ...

Because assembly ...
Oh no ...
My head ...

In other word, if you think C / C++ is already hard, don't even think about doing asm

(http://i.imgur.com/7AT5JSr.png?1)
Title: Re: Kolibri OS port?
Post by: Zefk on October 16, 2016, 10:14:10 PM
I think too much ASM would give anyone a headache. I do not think C/C++ is too hard, but Lua is easier.

Lua:

Code ( lua) Select
print "Hello, World!"

or

Code ( lua) Select
print("Hello, World!")

C:
Code (cpp) Select
#include <stdio.h>

int main()
{
    printf("Hello, World!\n");
}


C++:
Code (cpp) Select
#include <iostream>
using namespace std;

int main()
{
   cout << "Hello World\n";
}


There is also puts, fputs, printf, etc.

Nasm:

section .text
   global_start   ;must be declared for linker (ld)

_start:           ;tells linker entry point
   mov edx,len   ;message length
   mov ecx,msg   ;message to write
   mov ebx,1     ;file descriptor (stdout)
   mov eax,4     ;system call number (sys_write)
   int 0x80      ;call kernel

   mov eax,1     ;system call number (sys_exit)
   int 0x80      ;call kernel

section .data
msg db 'Hello, world!', 0xa  ;our dear string
len equ $ - msg    ;length of our dear string


Asm becomes clearer the more time your exposed to it, but it will most likely always be a lot of work. There is actually a RAD IDE for Fasm called fresh (https://fresh.flatassembler.net/) and of course the Kolibri OS Libraries.
Title: Re: Kolibri OS port?
Post by: MetalZelda on October 17, 2016, 01:33:19 PM
Yeah, this is basically something that just display "Hello World", though, Lua and C++ are relatively easy to make (especially a Hello World), while ASM already need much more knowledges, and it's only something to display some strings, imagine rewriting the whole Solarus engine in ASM, there must be something in Kolibri OS that support c++ compilers.

Kolibri supports GCC (g++) http://wiki.kolibrios.org/wiki/C/C%2B%2B_programming#GCC.2FG.2B.2B
This might be the only way to go to port Solarus in it.

Next time we're going to port the C++ source code of Solarus into a brand new and easy language: the Brainfuck  8)
https://fr.wikipedia.org/wiki/Brainfuck#Hello_World.21  :-[
Title: Re: Kolibri OS port?
Post by: Zefk on October 17, 2016, 02:50:16 PM
Not all the projects on Kolibri are pure assembly, but there would probably have to be some assembly used. I am not familiar enough with Kolibri OS, but it is progressing. A C layer is impressive.