If it's really a GOTO, there must not be any trace of where it was initiated in the stack, so NoData will not know where to return...
And even more buggy, the BufferChar Gosub will not be completed.
hence creating a bug.
When your program jumps to NoData label, in the stacker is still pending the last GOSUB instruction (the one that directed the program flow to the routine under BUfferChar label), so no matter how many GOTO you will use, the first RETURN will clear the last pending gosub and pointer will return the program flow to the main program routine (if the gosub had been executed there). And this is what will happen with the RETURN under NoData label.
Al.
All progress began with an idea
Bookmarks