Noticed today something strange. When I compile my code with the supplied .rel my static variables don't initialise. When I compile the rel with the .s file all is well. My guess is that the .rel in your include folder is old and based on the initial version of Konamiman.
With the wrong crt0 it displays 255,255,255,255,255. With the right one it displays: 0,0,1,0,1
I patched the original Konamiman version by doing this:
;.area _GSINIT WAS HERE MOVED DOWN TO gsinext
gsinit::
ld bc,#l__INITIALIZER
ld a,b
or a,c
jp z,gsinext
ld de,#s__INITIALIZED
ld hl,#s__INITIALIZER
ldir
gsinext:
.area _GSINIT
.area _GSFINAL
Problem was that the application calls gsinit at start. When area _GSINIT is before that it will be skipped. I moved it to gsinext. The crt0_msxdos_advanced.s of FusionLib when compiled also gives a good result. Only it does not include code for INITIALIZER. Don't know if this is still necessary though.
Noticed today something strange. When I compile my code with the supplied .rel my static variables don't initialise. When I compile the rel with the .s file all is well. My guess is that the .rel in your include folder is old and based on the initial version of Konamiman.
My code to check things:
With the wrong crt0 it displays 255,255,255,255,255. With the right one it displays: 0,0,1,0,1
I patched the original Konamiman version by doing this:
Problem was that the application calls gsinit at start. When area _GSINIT is before that it will be skipped. I moved it to gsinext. The crt0_msxdos_advanced.s of FusionLib when compiled also gives a good result. Only it does not include code for INITIALIZER. Don't know if this is still necessary though.