Es una solucion posible, pero lo ideal es hacer una rutina donde se le pase como parametros que sprite se quiere mover, y un byte conteniendo la distancia a mover, expresada como un numero con signo, lo que permitiria con la misma rutina mover un sprite en la coordenada X un numero de puntos arbitrario entre -128 y 127. Despues se podria implementar de forma separada una rutina que haga el chequeo de limites para corregir las coordenadas si el numero dio negativo o excedio los 344 puntos que me parece que es el maximo permitido por el VIC.
Pero el codigo no es mucho mas complejo que lo que ya se esta haciendo, por ejemplo si el sprite esta en la coordenada 250 y queremos avanzar 10 puntos a la derecha, se sumaria 250+10, esto daria como resultado 260, que excede el valor 255, representado en binario 260 = 100000100, que es un valor de 9 bits, el bit 8 (el noveno) queda en carry, los otros 8 bits quedan como resultado, que en decimal seria 00000100 = 4. El bit 8, que queda en carry despues de la suma, vale 256 (2^8), por lo que el resultado de la suma es justamente 256 + 4 = 260. Ese valor que queda en carry debemos colocarlo en el bit mas significativo de la coordenada X de ese sprite para que no se pierda, y el resultado (el valor 4) directamente en el registro de coordenada X del sprite.
En definitiva, el sprite antes tenia en X el valor 250, representado como 250 en la coordenada X y 0 en el MSB de la coordenada X, y luego de sumarle 10, pasaria a tener el valor 4 en X, y 1 en el MSB de la coordenada X. No es una cosa rara, simplemente es un numero de 9 bits, y se coloca el bit 8 de cada sprite en un unico registro, pero siempre tenemos que tomarlo como un numero de 9 bits al que se le puede sumar o restar cualquier numero. Hay que tener en cuenta que la suma de dos numeros de 8 bits puede dar como maximo un resultado de 9 bits, 255+255 = 510 = 1 11111110 en binario, esto es, carry = 1, y resultado igual a 11111110 = 254. No es mas que un numero de 9 (o 16 bits si se quiere redondear a bytes enteros) dividido en dos partes, pero el bit 8 siempre vale 256, en el ejemplo, 256+254 = 510.
Para restar coordenadas ya es un poco mas complejo, pero el codigo no es mucho mas largo, solo hay que pensarlo un poco mas.