I know I succeed in writing my code to that address using int 13h because I can see it at that memory location. What I can't do is jump there.
I put 0x1000 (three zeros there) into es and 0x0000 into bx and I know that [es:bx] means the address calculated by (es * 0x10) + bx which does equal 0x10000 (four zeros there). But eip, the instruction pointer, never does go there.
I've tried jmp [es:bx], jmp 0x1000:0x0000, and a bunch of other permutations that NASM doesn't even accept.
My boot loader as it currently is (which still isn't working) is here. I booted it up in Qemu and did a memsave on the first 50 bytes at 0x10000, opened it up with tweak, and saw my "kernel" code there (simple . But EIP still refuses to be 0x10000, or reach it and then hang where I want it, is what I mean). Full images of the situation here