mirror of https://github.com/nmlgc/ReC98.git
bead27b781
With TH03 changing the calling convention for most of the code from __cdecl to __pascal, I've been getting more and more confused about this myself. So, let's settle on the following consistent syntax for function calls: * C where the calling convention is actually __cdecl and where TASM's emitted __cdecl code matches the original binary * PASCAL where the calling convention is actually __pascal * STDCALL where the calling convention is actually __cdecl, but where the caller either defers stack cleanup (summing up the stack size of multiple functions, then cleaning it all in a single "add sp" instruction) or where the stack is cleared in a different way (e.g. "pop cx"). Unfortunately though, when using the ARG directive to automatically generate an appropriate RET instruction for the given calling convention, TASM always emits ENTER and LEAVE instructions even when no local variables are declared, which greatly limits the number of functions where we can use that syntax. -.- |
||
---|---|---|
.. | ||
hardware | ||
strings | ||
th04.asm |