It doesn't matter where the call instruction itself resides. It matters where the subroutine that you are calling resides.
On the 12F508, the address that the program counter gets modified with on a call or a goto instruction come from the lower 9 bits of the instruction itself (bits 0-8). However, on a call instruction, bit 8 is always clear. This means that you can only place subroutines in the lower 256 bytes of program ROM.
However, with the page access bit in the STATUS register (bit PA0), you can also place them in the lower 256 addresses of the upper half of memory.
So if you plan to place them in the lower half of program ROM, you have to type out your code as I illustrated above. If you plan to place your subroutines in the lower half of the upper half of program ROM, then you can do this instead -
However, if you place your subroutines between addresses 0x200 - 0x2FF, you have to use a bsf instruction to set bit PA0 in the STATUS register prior to calling the subroutine.