Didn't install the compiler. If that is needed, the setup instructions are incomplete :-)
Minimal files for SDCC 4.1.12 are installed with MSXgl in Tools/sdcc
.
The only thing I've changed in the default config file is:
set Emulator=C:\emulators\_openmsx\openmsx.exe
Now v4.1.14 is online
@wimpie3 Did you tried other sample than arkos one?
This one is WIP (see https://aoineko.org/msxgl/index.php?title=Samples to check the state of samples. Please only test those marked as "fonctionnal").
If the problem persists with another sample, could you please send me the result of a "set > vars.txt
" right after the error (without restarting the command console).
I tried the examples and they compile just fine. It even starts openMSX :-)
I have found that the v4.1.14 supports the __banked keyword for calling functions I other banks and a #pragma directive to define bank pages...
@aineko have you tried these features?
The explanation of the bank system being in the MCS51 specific part, I didn't think it was compatible with the Z80. But indeed, there is some information that appeared in the Z80 part that let hope that it could also work.
I haven't tested it yet, but I will.
I eager to see how it works
You have a rom-mapper - how does that work if you want to call functions inside another segment?
In Lilly's Saga I've done things "the brutal way" - I always need to call "dispatcher-code" that is resident in page 3, to reach code in another segment (in page 0, 1 or 2). The caller supplies both the segment-id and address of the function/routine. And as this is *not* being done automatically by the linker (as every segment is compiled separately), some rom-segments (where segments reference each other) need to be compiled twice. This works, but is not as elegant way of doing things as it could be.
Would love to see a simple example of a how to do this in a clean and effective way. How does MSXgl (or Final Smash) deal with this?