Prototypes work and can be in the same file; you probably made some mistake. I use it in BSC code with no problem.
It reminds me a caveat: prototype declaration must not contain command line parameters (i.e. int Test = Parse_Int(…)). It makes sense but compiler behaves some really strange way I forgot and it isn’t obvious what the problem is.