I have to ask this question as I do not have the DSR documentation in front of me: I seem to recall that you can ask a DSR to load data into VDP memory. Is that correct? If so, then this method could be used to stub for much larger programs which swap in parts of themselves from disk. Is that 114 bytes of space taking into account RAM used by the GPL interpreter? If so, if we could cut the GPL interpreter out of the picture we could free up more space and just ignore the idea of running GPL from within VDP RAM
For the DSR bit, in theory you could use the GPL DSR to load data to VDP, it would be tricky but should be feasible (of course, in this case you DO need to preserve the GPL parts of scratchpad.
) That said... if you run in graphics mode and assume all sprites and all characters defined in separate tables, you've still only used 5k or so, so you still have 7k or so available for assembly language code and data (assuming 12k max load size, which is rough, likely you have more).
For using all of scratchpad, yes, but you're also throwing away most of the console interrupt functionality, as it relies on various bytes in scratchpad. (This may be okay depending on your application, but for simple stuff it's a lot of code you don't have to provide.) Harry's program is already paging a lot of code in and out of scratchpad, it's a good demo! This is exciting stuff! It's always very cool to see "impossible" overcome.