@foone @eniko Oh yeah, I know that feeling.
Being free from calling conventions is a strength and weakness of assembly. Those are part of the overhead of higher-level languages, and you might as well use a compiler if you're willing to incur that overhead.
I have a piece of Z80 code that I'm currently working on, where the calling convention includes "the caller must set DE to $0006, and the callee must not modify it, don't ask."
Yes, I think of C as a high-level language, it's all relative.