So, this is an example of the reason for the (void *) param I was suggesting some time back. Such needs come up.
One option is to have a convention that globals are at the base of the stack, rounded to 64k.
e.g. %esp & 0xffff0000 is where globals live.
ron