3-d vector rotation
It's expected that either the vector or the matrix are 16-bit fractions.
Storage
Space is left at address 0 to store the 3-vector and the 3x3 matrix. Presumably the matrix will be applied to multiple vectors. There's enough room for a 5x5 matrix.
*.
16-bit fraction multiply, discarding multiplicand
m
A variable to store the index into the matrix. It runs 9 words from 3 to 12.
ele
Process an element of the matrix
- Fetch vector component
- Save a
- Retrieve matrix index
- Fetch matrix component
- Save matrix index
- Multiply
- Restore a
*v
Multiply vector by matrix.
- Store vector
- For 3 results
matrix
Read and store matrix. This could be done with port execution.