Well, the list with feature requests is already long, and even more requests will come as the contest progresses. I think that Oscar wants to have a full picture of needs and proposals before evolving the compiler.
To me, at the moment, there is nothing that I cannot cope with some trick or workaround.
Anyway, whatever decision Oscar takes, it will be fine.
About feature requests, I've spotted a possible improvement (another :-) )
Now you can use:
on frame gosub
only once in the source.
If you try to change the subroutine or just to remove it at all you simply cannot.
The compiler gives error if you try to change ISR and there is no way to point to an empty ISR to disable it.
My workaround is to build a large "switch/case" in the unique ISR you are allowed to call and live with it.
This can be not efficient, especially if you need many optional subroutines, as the reiterate comparisons cost precious CPU time during the Vblank.
Anyway, changing the ISR pointer by using twice or three times the "on frame gosub" command should be possible as usually the hook to the current ISR is in RAM.
So it should be just matter of writing an address in a RAM location.
I believe that "On Frame Gosub" does not change the actual ISR, which is reserved by IntyBASIC's runtime. It only sets up a call-back to be called after the ISR runs. I further believe it is called outside the context of the ISR itself, so it is outside the VBLANK critical path.
(Oscar, please correct me if my understanding is wrong.)
The problem with the "On Frame Gosub" idiom is that you can only ever have a single one because there is no mechanism to assign a new call-back within the normal flow of the program (think of the idiom not as a statement executed inline, but more like a declarative directive that gets compiled into the global space of the program, like PROC or DATA, which are independent of flow positioning).
Ideally, what you want is a runtime assignment of the frame call-back. I agree that this would be very useful, but it is definitely a different mode of operation.
As for changing the actual ISR, I think that would break many IntyBASIC features, and you wouldn't be able to guarantee the stability of the environment on re-entry.
I guess if you really, really wanted to, you could POKE your way into doing it, though I wouldn't recommend it.