annotate tools/gentab.c @ 2298:b5abfff07ca9

Add new DMGrowBuf helper functions dmGrowBufCopyOffsSize() and dmGrowBufConstCopyOffsSize().
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 04 Jul 2019 10:54:16 +0300
parents 2e656da1b10b
children b7cd5dd0b82e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
25d653664874 Add missing include.
Matti Hamalainen <ccr@tnsp.org>
parents: 958
diff changeset
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
a75ffe7a02b9 Change program name.
Matti Hamalainen <ccr@tnsp.org>
parents: 652
diff changeset
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
2e656da1b10b Cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents: 2183
diff changeset
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 }