Data is not the only thing that outgrew 64KB — so did code. The 65816 adds the Program Bank Register (PBR, or K): the program counter is now PBR : PC, 24 bits, so a program can span the full 16MB. New long control-flow reaches across banks: JML (jump long) and JSL (jump-to-subroutine long). And because a long call may return to a different bank, JSL pushes three bytes (bank + high + low) where the 6502’s JSR pushed two — the return address grew a bank. Code, banked.
The demo forms a long jump target (bank 3, $8000 → 0x038000) and shows JSL pushes one more byte than JSR: live demo
“A jump is a jump.” — a long jump carries a bank, and a long call must push it too, so the return address is three bytes. cited
A program counter with a bank on top — code that jumps across the whole 16MB, its return address grown a byte. banked code
On the canonical compiler, JML to bank 3 $8000 forms 0x038000 (229376), and JSL pushes 3 bytes to JSR’s 2: