There are ways around everything... and the easiest to to have intermediate variables assigned for your subroutine... so, using your example...
Code:
myVar as byte
myVar2 as byte

loop:
gosub test(myVar)
gosub test(myVar2)
goto loop
what you would do is...
Code:
myVar as byte
myVar2 as byte
testVar as byte

loop:
testvar=myvar:gosub test
testvar=myvar2:gosub test
goto loop
and your subroutine performs its functions only on the variables (testVar) allocated to it...