You haven't created a sprite with Management# 0 (the first parameter). This is because SPDEF only redefines a sprite definition template (in this case, Definition# 0), but doesn't actually create a sprite. To create the sprite you need to call SPSET and specify a Management# (the sprite's ID) and a Definition# (the template the sprite's based on). So you need to call SPSET 0,0 after the SPDEF.