The _PUTIMAGE and END method, for testing, isn’t working because of _DISPLAY. You’d at least want to _PUTIMAGE, _DISPLAY, and then END, so you’d display the changes to the screen.
If you think it’s a PRINT pushing things off the screen, simply change that CLS to a LOCATE 1,1, for testing. It might help confirm the issue.