cbd629caf8cf7b62405c0d09b97cbcae3b24527b
[dos_low3d] / tools / genlut.c
1 #include <stdio.h>\r
2 #include <math.h>\r
3 \r
4 #define SINTAB_SIZE             512\r
5 #define SINTAB_SCALE    8192\r
6 \r
7 int main(void)\r
8 {\r
9         int i, len;\r
10 \r
11         printf("\tbits 32\n");\r
12         printf("\tsection .rodata\n\n");\r
13 \r
14         printf("\tglobal _sintab\n");\r
15         printf("_sintab:\n");\r
16 \r
17         fputs("\tdw", stdout);\r
18         len = 10;\r
19         for(i=0; i<SINTAB_SIZE; i++) {\r
20                 double theta = (double)i / (double)SINTAB_SIZE * 6.28318530718;\r
21                 double sf = sin(theta);\r
22                 int sx = (int)(sf * SINTAB_SCALE);\r
23                 len += printf(" %d", sx);\r
24                 if(len >= 72) {\r
25                         putchar('\n');\r
26                         if(i < SINTAB_SIZE - 1) {\r
27                                 fputs("\tdw", stdout);\r
28                                 len = 10;\r
29                         }\r
30                 } else {\r
31                         putchar(',');\r
32                         len++;\r
33                 }\r
34         }\r
35         printf("\n\n; vi:ft=nasm ts=8 sts=8 sw=8:\n");\r
36         return 0;\r
37 }\r