2ee739cc |
1 | /* |
2 | * fixedPt.h |
3 | * |
4 | * [Generated from fixedPt, 25 September 1996] |
5 | */ |
6 | |
7 | #if !defined(__CC_NORCROFT) || !defined(__arm) |
8 | #error You must use the Norcroft ARM Compiler for Sapphire programs |
9 | #endif |
10 | |
11 | #pragma include_only_once |
12 | #pragma force_top_level |
13 | |
14 | #ifndef __fixedPt_h |
15 | #define __fixedPt_h |
16 | |
17 | #ifndef __sapphire_h |
18 | #include "sapphire.h" |
19 | #endif |
20 | |
21 | /*----- Overview ----------------------------------------------------------* |
22 | * |
23 | * Functions provided: |
24 | * |
25 | * fxp_atan |
26 | * fxp_pol |
27 | * fxp_sin |
28 | * fxp_cos |
29 | */ |
30 | |
31 | /* --- fxp_atan --- * |
32 | * |
33 | * On entry: R0 == x, in 16.16 fixed point form |
34 | * |
35 | * On exit: R0 == arctan x, in degrees, in 16.16 fixed point |
36 | * |
37 | * Use: Calculates arctan x, hopefully fairly swiftly. The |
38 | * accuracy of the result is open to doubt, although |
39 | * it's usually good to about 3 significant figures. |
40 | * It uses a small lookup table and linear interpolation |
41 | * to calculate the result. |
42 | */ |
43 | |
44 | extern routine fxp_atan; |
45 | |
46 | /* --- fxp_pol --- * |
47 | * |
48 | * On entry: R0 == x coordinate |
49 | * R1 == y coordinate |
50 | * |
51 | * On exit: R0 == angle in degrees, in 16.16 form |
52 | * |
53 | * Use: Calculates the angle a vector makes with the +ve x axis. |
54 | * The angle is given in degrees, rather than radians, |
55 | * although this isn't really overly significant; it just |
56 | * makes it slightly easier to work with, because it's |
57 | * bigger. |
58 | * |
59 | * This routine uses the arctan table and linear |
60 | * interpolation, so it's fairly quick, but the accuracy |
61 | * of its results is restricted to about 3 significant figures. |
62 | */ |
63 | |
64 | extern routine fxp_pol; |
65 | |
66 | /* --- fxp_sin --- * |
67 | * |
68 | * On entry: R0 == angle in degrees, in 16.16 form |
69 | * |
70 | * On exit: R0 == sin of angle, in 16.16 form |
71 | * |
72 | * Use: Calculates a sin of an angle with a degree of swiftness and |
73 | * a lot less accuracy. |
74 | */ |
75 | |
76 | extern routine fxp_sin; |
77 | |
78 | /* --- fxp_cos --- * |
79 | * |
80 | * On entry: R0 == angle in degrees, in 16.16 form |
81 | * |
82 | * On exit: R0 == cos of angle, in 16.16 form |
83 | * |
84 | * Use: Calculates a cos of an angle with a degree of swiftness and |
85 | * a lot less accuracy. |
86 | */ |
87 | |
88 | extern routine fxp_cos; |
89 | |
90 | /*----- That's all, folks -------------------------------------------------*/ |
91 | |
92 | #endif |