fixed kprintf to restore IY, made test runner more robust against register trashing