Hello. I revised the crt1.c again and finally I add more comments about the difference between the two prototypes of __getmainargs.
I fixed the protoype of _controlfp. Also, I replace the constant value parameters with the corresponding macros.
And I found in the documentation that the parameter used for change the precision, is not supported on x64. And I do tests. On x86, it changes the precision. On x64 it not changes anything. Thus, I add a preprocesor directive for only call to _controlfp when you compile with tcc for x86. With tcc for x64 this call is omitted.
Also I left the prototypes of other function used with the calling convention.
Now, I check the success of getmainargs,
according to official documentation: checking if the return value is negative.
Now _start() return void instead int, because it returns nothing, it uses ExitProcess or exit function for end the program.
I tested this new crt and works on win 98, 2000, xp, 8.
Carlos.