ChillyWilly thanks for posting this! I'm a beginner to 68K , but your code is so clean and commented that now i can understand all the boot process
.
I've been studying the boot process using the source of emulators , but this is so clean!! Thanks !!

I hope that you're going to release all the source so more people can learn from it.
By the way , these alpha-numerical labels are actually normal labels ?
Also great idea to add exception handler!
Thanks, that's the whole point to my own menu - make it very clean and very commented, and people should have something they can learn from as well as making the menu easy to maintain. I am about half way through the menu itself, and when I've got it done, I'll make a thread in the development sub-forum where I'll post all the code as well as some more insights into the hardware I had while working on the code.
That code above is my crt0.s file and is meant to be somewhat generic so I can use it for other MD projects. For example, if I used it for a game, I'd uncomment the equates at the top and actually use the exception handlers. Numeric labels are reusable local labels. You simply make a label
#:then refer to it according to which way it is from the jump/branch. If you are referring to a numeric label earlier in the code, you use #b where the "b" stands for backward, and if referring to a numeric label later in the code, use #f where the "f" stands for forward. It goes to the FIRST number matching in the direction you specify, so you could just always use the same number if you can keep them straight.
1:
tst.w (a0)
bne.b 1f
tst.w d0
bne.b 1b
1:
tst.w (a0)
beq.b 1f
bne.b 1b
tst.w d1
bne.b 1b
1:
I don't think that's quite as easy to follow, so I try to use unique numbers between absolute labels... in other words, I treat them like regular local labels.