Yeah, my problem in particular was your use of a number of unknown-to-me words combined with a lack of inline stack diagrams. Starting with, Leo Brodie doesn't cover ?do, just do. It might've manipulated the stack, who knows. The `grep -r ": ?do" forth/` hit in OpenBIOS wasn't too helpful, and Google doesn't distinguish between "do" and "?do" so you get too many unrelated "do" hits. I got along by hoping it doesn't place anything on the stack. Similar issues for <# etc., still no clue there but it works. Do you happen to know a suitable reference for looking up the meaning of such words?
The IEEE 1275 spec describes anything you can use in this code. ?do doesn't start the loop if the limits won't allow it.