This question is half basic, half ASM, but I think the problem may be with the BASIC half of it.
I wrote an ASM routine that I've used for a while which loads/displays sprites. (it's compiled through an assembler and made into a lib, by the way - not called through ABSOLUTE). When loading from a file, I pass the filesize through an int%. However, this only allows for files up to 32767 bytes long. So, I changed it to a Long it& for a range of up to ~2billion.
When I used only an int, I used indirect addressing -  - to get it from the stack. I didn't change much for the long int, which takes up 4 bytes instead of 2, except that I adjusted all my other indirect addressing MOVs as well.
Also, I tried to mov the long int into ECX, where it was CX before. I figure the upper 16 bits should be empty, and that the lower 16 (btw, i only want a filesize of up to 65535...) should contain the number I passed.
So, my question is: Do long ints working differently than I anticipate - do they pass from QB to ASM differently than an int. Or, am I just getting the value from the stack incorrectly. That could be the case as well, as I know little about 32bit registers.