I swear at one point in time I used to know the difference between the similar system calls, but for the life of me I can't remember. So what is the difference between call xyz, and xyzBJ?
Additionally, is there other documentation that tells in more detail what the function calls do? I know of jass.sourceforge.net, but I am looking for something a little more descriptive.
The difference between xyz and xyzBJ is that the xyzBJ version is declared in blizzard.j and xyz is a native. The BJ versions are the ones used by the GUI and does things like setting the last created unit variable and stuff. Using the natives is usually better than the BJ versions, but it's not a crucial difference. Btw, not all functions from blizzard.j has BJ as extension.
Look up a function in blizzard.j and compare it with the native function calls from common.j; sometimes, the developers have even left helpful comments on why there is a difference ^ ^