Follow up...
I was able to figure out how to get the assembler (ca65) to do everything I wanted.
Labels put in the 'zeropage' segment correctly assemble as 8-bit. (Assuming DP = 0000)
All other labels assembled as 16-bit. If you use a label in another bank it needs an f: to get a long address.
All addresses written out in numbers take the bit-depth you write. Example LDA $812345 correctly assembles into a long address. LDA $01 correctly assembles into a DP address.
LDA #01 immediate, varies depending on directives...
.a16 (A9 01 00)
or .a8 (A9 01)
I think I'm figuring it out. Baby steps.
Edit - I'm thinking of trying byuu's SPC assembler...at some point.
nesdoug.com -- blog/tutorial on programming for the NES