@Alvin, I'm working on taking care of the GOTO, this was the code I got from the sample of FASE code from Antonio. So far my attempts on getting rid of the while(1) loop by doing
something like.
Using a goto is ok, it's just that there has been a bug associated with it under sccz80 that has been fixed since 1.99B that you were using.
People always say "gotos are bad" but it shouldn't be taken as dogma. What is really meant is that gotos, if used inappropriately, destroy the structure of a program which makes it hard to understand and often leads to less than optimal code written by the programmer. However, there are legitimate reasons for using goto, especially when it simplifies the structure of a program like getting out of a deeply nested point in the code.
About the stack location, FASE reserves its own independent region of memory and you have to make sure the stack and the z88dk generated code stays out of that area.
And as mentioned by dom, some of those warnings are inconsequential. sccz80 is now checking for many more potential errors in the code so it generates a lot more warnings than it used to. However, you should check warnings to make sure they aren't actual errors that used to be skipped over, and you may want to clean up code to eliminate those warnings.
sccz80:"main.c" L:280 Warning:Assigning from a void expression
This one probably indicates an error as the compiler is saying the expression produces no result but you're still using its non-existent value for an assignment. Maybe this has something to do with the function pointer expression you're using. The older z88dk would have ignored this.
sccz80:"main.c" L:908 Warning:Control reaches end of non-void function
This one means the function expects to return a value but you're leaving the function without returning one.
sccz80:"main.c" L:927 Error:Unexpected end of file
You probably don't have a blank line at the end of the file (you're not allowed to end a source file without a blank line).