Skip to navigation


Maths (Arithmetic): DV41

[Elite-A, Parasite]

Name: DV41 [Show more] Type: Subroutine Category: Maths (Arithmetic) Summary: Calculate (P R) = 256 * DELTA / A
Context: See this subroutine in context in the source code References: This subroutine is called as follows: * STARS2 calls DV41

Calculate the following division and remainder: P = DELTA / A R = remainder as a fraction of A, where 1.0 = 255 Another way of saying the above is this: (P R) = 256 * DELTA / A This uses the same shift-and-subtract algorithm as TIS2, but this time we keep the remainder.
Returns: C flag The C flag is cleared
.DV41 STA Q \ Store A in Q LDA DELTA \ Fetch the speed from DELTA into A JMP DVID4 \ Jump to DVID4 to do: \ \ (P R) = 256 * A / Q \ = 256 * DELTA / A \ \ and return from the subroutine using a tail call