Is it possible that in the routine "scadd" (Chapter 8) ycoord and xcoord have been accidentally exchanged in the code ?
Yes, that's the way I have always written games. X is the distance from the top of the screen, Y is the distance from the left edge. I usually put comments in to warn people that's how my routines work