Rot_VL ($F616)

Rot_VL_ab ($F610)

This routine rotates a vector list of length 'n+1', where 'n' is specified by the value in the B register. The A register contains the rotation value, and the X contains a pointer to the vector list. The U register contains a pointer to a buffer into which the transformed points are to be saved. The vector list has the following format:

rel y, rel x, rel y, rel x, ...

 

ENTRY:

A-reg = rotation angle value (Rot_VL_ab only)

$C836 = rotation angle value (Rot_VL only)

B-reg = number of points - 1 (Rot_VL_ab only)

$C823 = number of points - 1 (Rot_VL only)

X-reg points to original vector list

U-reg points to rotated vector list

 

EXIT:

DP = $C8

X-reg points to next byte after list

U-reg points to next byte after rotated list

D-reg trashed

 

Source