or more general
Setup (Condition (Fail) (Succeed copy do) choice do) copy do
Thank you! I guess I'll have to implement some of the arithmetic words then - I don't know what was stopping me from making a utility block as you've described that wasn't explicitly presented as a word to be defined. Probably because stack based programming, as powerful and minimal and beautiful as it is, is still alien and daunting to the way I've always written software - it would have taken me a while to formulate the solution you've shown. Learning this and getting better at it is something I'm compelled to continue trying because I know deep down that there is something to what all the Forth people are on about.
Thanks for reading my long winded blog post, and thanks again for the help!