Mercurial > hg > dmlib
annotate tools/gentab.c @ 2332:46b929f822f8
Cosmetic.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 16 Sep 2019 11:42:32 +0300 |
parents | 2e656da1b10b |
children | b7cd5dd0b82e |
rev | line source |
---|---|
1432
a9516570cc26
Improve build, so that we can build the tools and tests with minimal
Matti Hamalainen <ccr@tnsp.org>
parents:
1235
diff
changeset
|
1 #include "dmtool.h" |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
2 #include "dmlib.h" |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
3 #include "dmargs.h" |
981 | 4 #include "dmcurves.h" |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
5 #include <math.h> |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
6 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
7 enum |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
8 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
9 MT_SIN, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
10 MT_COS, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
11 MT_SMOOTH1, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
12 MT_SCURVE, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
13 MT_SMOOTH1_CLAMP, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
14 MT_SCURVE_CLAMP, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
15 MT_SIN_SCURVE, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
16 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
17 MT_LAST |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
18 }; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
19 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
20 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
21 typedef struct |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
22 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
23 char *name; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
24 char *desc; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
25 } DMTransType; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
26 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
27 static DMTransType dmTransTypes[MT_LAST] = |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
28 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
29 { "sin", "Sine" }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
30 { "cos", "Cosine" }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
31 { "smooth1", "Smoothstep1 LERP" }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
32 { "scurve", "S-curve LERP" }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
33 { "smooth1-clamp", "Clamped smoothstep1 LERP" }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
34 { "scurve-clamp", "Clamped S-curve LERP" }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
35 { "sin-scurve", "Sine S-curve" }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
36 }; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
37 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
38 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
39 DMFloat |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
40 optSOffset = 0.0f, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
41 optSAmplitude = 1.0f, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
42 optSOmega = 1.0f, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
43 optStartValue = 0.0f, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
44 optEndValue = 1.0f; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
45 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
46 int optNSteps = 64, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
47 optPerLine = 16, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
48 optTransType = -1; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
49 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
50 char |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
51 *optObjectName = NULL, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
52 *optOutFilename = NULL; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
53 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
54 |
860
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
835
diff
changeset
|
55 static const DMOptArg optList[] = |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
56 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
57 { 0, '?', "help", "Show this help", OPT_NONE }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
58 { 1, 'v', "verbose", "Increase verbosity", OPT_NONE }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
59 { 2, 'o', "output", "Set output file (default stdout)", OPT_ARGREQ }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
60 { 3, 'n', "name", "Set output object name", OPT_ARGREQ }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
61 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
62 { 4, 's', "steps", "Number of steps/values in output table", OPT_ARGREQ }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
63 { 5, 't', "type", "Curve/interpolation type (see list)", OPT_ARGREQ }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
64 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
65 { 6, 'O', "offset", "Output data offset", OPT_ARGREQ }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
66 { 7, 'A', "amplitude", "Output amplitude scale", OPT_ARGREQ }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
67 { 8, 'W', "omega", "Omega (w) multiplier", OPT_ARGREQ }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
68 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
69 { 9, 'S', "start", "Start value (only smooth/scurve)", OPT_ARGREQ }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
70 { 10, 'E', "end", "End value (only smooth/scurve)", OPT_ARGREQ }, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
71 }; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
72 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
73 static const int optListN = sizeof(optList) / sizeof(optList[0]); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
74 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
75 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
76 void argShowHelp() |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
77 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
78 int index; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
79 dmPrintBanner(stdout, dmProgName, "[options]"); |
860
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
835
diff
changeset
|
80 dmArgsPrintHelp(stdout, optList, optListN, 0); |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
81 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
82 printf("\nAvailable types:\n"); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
83 for (index = 0; index < MT_LAST; index++) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
84 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
85 DMTransType *tm = &dmTransTypes[index]; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
86 printf("%-15s | %s\n", tm->name, tm->desc); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
87 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
88 printf("\n"); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
89 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
90 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
91 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
92 BOOL argHandleOpt(const int optN, char *optArg, char *currArg) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
93 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
94 switch (optN) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
95 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
96 case 0: |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
97 argShowHelp(); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
98 exit(0); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
99 break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
100 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
101 case 1: |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
102 dmVerbosity++; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
103 break; |
1235
5b8245e5f785
Remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
981
diff
changeset
|
104 |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
105 case 2: |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
106 optOutFilename = optArg; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
107 break; |
1235
5b8245e5f785
Remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
981
diff
changeset
|
108 |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
109 case 3: |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
110 optObjectName = optArg; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
111 break; |
1235
5b8245e5f785
Remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
981
diff
changeset
|
112 |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
113 case 4: |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
114 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
115 int tmp; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
116 if (sscanf(optArg, "%d", &tmp) != 1) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
117 { |
958
985225a93aeb
Add error code parameter to dmError() and dmErrorVA().
Matti Hamalainen <ccr@tnsp.org>
parents:
860
diff
changeset
|
118 dmErrorMsg("Invalid number of steps argument '%s'.\n", optArg); |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
119 return FALSE; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
120 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
121 optNSteps = tmp; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
122 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
123 break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
124 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
125 case 5: |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
126 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
127 int index; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
128 for (index = 0; index < MT_LAST; index++) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
129 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
130 DMTransType *tm = &dmTransTypes[index]; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
131 if (strcasecmp(tm->name, optArg) == 0) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
132 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
133 optTransType = index; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
134 return TRUE; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
135 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
136 } |
958
985225a93aeb
Add error code parameter to dmError() and dmErrorVA().
Matti Hamalainen <ccr@tnsp.org>
parents:
860
diff
changeset
|
137 dmErrorMsg("Invalid transformation type option '%s'.\n", |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
138 optArg); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
139 return FALSE; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
140 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
141 break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
142 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
143 case 6: |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
144 case 7: |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
145 case 8: |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
146 case 9: |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
147 case 10: |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
148 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
149 DMFloat tmp; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
150 if (sscanf(optArg, "%f", &tmp) != 1) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
151 { |
958
985225a93aeb
Add error code parameter to dmError() and dmErrorVA().
Matti Hamalainen <ccr@tnsp.org>
parents:
860
diff
changeset
|
152 dmErrorMsg("Invalid %s option argument '%s', expected a floating point value.\n", |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
153 currArg, optArg); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
154 return FALSE; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
155 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
156 switch (optN) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
157 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
158 case 6: optSOffset = tmp; break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
159 case 7: optSAmplitude = tmp; break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
160 case 8: optSOmega = tmp; break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
161 case 9: optStartValue = tmp; break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
162 case 10: optEndValue = tmp; break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
163 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
164 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
165 break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
166 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
167 default: |
2183
e3f0eaf23f4f
Change the error message for unimplemented option argument.
Matti Hamalainen <ccr@tnsp.org>
parents:
1432
diff
changeset
|
168 dmErrorMsg("Unimplemented option argument '%s'.\n", currArg); |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
169 return FALSE; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
170 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
171 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
172 return TRUE; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
173 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
174 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
175 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
176 int main(int argc, char *argv[]) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
177 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
178 FILE *outFile; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
179 DMLerpContext ctx; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
180 int step, n; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
181 |
835 | 182 dmInitProg("gentab", "Table generator", "0.2", NULL, NULL); |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
183 dmVerbosity = 1; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
184 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
185 // Parse arguments |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
186 if (!dmArgsProcess(argc, argv, optList, optListN, |
860
daebbf28953d
The argument handling API in dmargs* was synced with th-libs.
Matti Hamalainen <ccr@tnsp.org>
parents:
835
diff
changeset
|
187 argHandleOpt, NULL, OPTH_BAILOUT)) |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
188 exit(1); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
189 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
190 // Check settings |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
191 if (optTransType < 0) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
192 { |
958
985225a93aeb
Add error code parameter to dmError() and dmErrorVA().
Matti Hamalainen <ccr@tnsp.org>
parents:
860
diff
changeset
|
193 dmErrorMsg("No transformation type set, perhaps try --help\n"); |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
194 return -1; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
195 } |
1235
5b8245e5f785
Remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
981
diff
changeset
|
196 |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
197 if (optObjectName == NULL) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
198 { |
958
985225a93aeb
Add error code parameter to dmError() and dmErrorVA().
Matti Hamalainen <ccr@tnsp.org>
parents:
860
diff
changeset
|
199 dmErrorMsg("Object name not specified, try --help\n"); |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
200 return -2; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
201 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
202 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
203 if (optOutFilename == NULL) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
204 outFile = stdout; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
205 else |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
206 if ((outFile = fopen(optOutFilename, "w")) == NULL) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
207 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
208 int err = dmGetErrno(); |
958
985225a93aeb
Add error code parameter to dmError() and dmErrorVA().
Matti Hamalainen <ccr@tnsp.org>
parents:
860
diff
changeset
|
209 dmErrorMsg("Could not open output file '%s', %d: %s\n", |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
210 optOutFilename, err, dmErrorStr(err)); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
211 return -2; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
212 } |
1235
5b8245e5f785
Remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
981
diff
changeset
|
213 |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
214 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
215 // Generate table |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
216 dmLerpInit(&ctx, optStartValue, optEndValue, optNSteps); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
217 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
218 fprintf(outFile, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
219 "cnt_%s = %d\n" |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
220 "vtab_%s: ", |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
221 optObjectName, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
222 optNSteps, |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
223 optObjectName |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
224 ); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
225 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
226 for (n = 0, step = 0; step < optNSteps; step++) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
227 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
228 DMFloat t = ((DMFloat) step * optSOmega) / (DMFloat) optNSteps, delta, value; |
1235
5b8245e5f785
Remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
981
diff
changeset
|
229 |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
230 switch (optTransType) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
231 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
232 case MT_SIN: delta = sin(t * 2 * DM_PI); break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
233 case MT_COS: delta = cos(t * 2 * DM_PI); break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
234 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
235 case MT_SMOOTH1: delta = dmLerp1(&ctx, step); break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
236 case MT_SCURVE: delta = dmLerpSCurve(&ctx, step); break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
237 case MT_SMOOTH1_CLAMP: delta = dmLerp1Clamp(&ctx, step); break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
238 case MT_SCURVE_CLAMP: delta = dmLerpSCurveClamp(&ctx, step); break; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
239 case MT_SIN_SCURVE: delta = dmLerpSCurveClamp(&ctx, step); break; |
1235
5b8245e5f785
Remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
981
diff
changeset
|
240 |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
241 default: delta = 0; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
242 } |
1235
5b8245e5f785
Remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
981
diff
changeset
|
243 |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
244 value = optSOffset + delta * optSAmplitude; |
1235
5b8245e5f785
Remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
981
diff
changeset
|
245 |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
246 // Print the value |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
247 if (n == 0) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
248 fprintf(outFile, "\t.byte "); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
249 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
250 fprintf(outFile, "%ld%s", |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
251 lrint(value), |
2248 | 252 (n + 1 < optPerLine) ? "," : ""); |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
253 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
254 if (++n >= optPerLine) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
255 { |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
256 fprintf(outFile, "\n"); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
257 n = 0; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
258 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
259 } |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
260 if (n > 0) |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
261 fprintf(outFile, "\n"); |
1235
5b8245e5f785
Remove trailing whitespace.
Matti Hamalainen <ccr@tnsp.org>
parents:
981
diff
changeset
|
262 |
496
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
263 fprintf(outFile, "\n"); |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
264 |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
265 return 0; |
966617f0f6cd
Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
266 } |