Another point on the void main() problem: Any C compiler that sends return codes back on the stack, rather than in a register, will have major problems when the startup code tries to read the non-existant return code from the stack ...