Quote:
Actually, I want an assembler that can assemble 6502 / 65c02 code at any ORG, even when that ORG is outside the 64K address space.
Most assemblers won't do that, because their authors consider that an error, because such code has no hope of executing. That's not just for the 6502 family - very few assemblers will, without tricks, allow you to assemble code outside the processor address space.
Perhaps a different approach is to ask what the problem you're really trying to solve is. AFAICT, you want to assemble POP as one big file. That in itself is not really a difficulty these days. Does the problem arise from the size of the result? In other words, what to do with it once you've got it?
It sounds like you want to put the result in a memory space outside the normal 6502 range. All right, go ahead and do that by whatever means. But you should stop thinking of what you're doing as moving code around so much as moving data around. Since 6502 code stored outside of its address range won't execute, that's all it really is - data. There's no particular reason to want to "assemble" it for whatever address it will be loaded/stored at. Just tell the OS - or write whatever custom loader you want - to put it there.
In other words, go ahead and write it for its execution address, go ahead and load it to its storage address. Just remember you're going to have to have some scheme to bring the "data" to its execution address before you can use it as "code".