1) works like it does for me.
2) and 3) are quite surprising results. Apparently the correct IRQ doesn’t run at all or it crashes hard.
Here is another try. It has a more foolproof crash logic, I noticed that I had forgotten some bad old error handlers in the code:
http://kapsi.fi/~jpa/stuff/other/LOGIC004.HEX
Observe in particular if there are any red pixels in the upper part of the screen - they are an indication that the IRQ is running.
Thanks for helping out with the testing
Oh: by the way, also try with the usb cable disconnected! Maybe the USB interrupts are causing some distruption.