annotate gentab.c @ 570:a26636faa6b7

Update copyright.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 05 Jan 2013 19:58:23 +0200
parents 966617f0f6cd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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
1 #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
2 #include "dmargs.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 <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
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
5 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
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 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
8 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
9 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
10 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
11 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
12 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
13 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
14
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_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
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
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 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
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 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
22 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
23 } 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
24
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 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
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 { "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
28 { "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
29 { "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
30 { "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
31 { "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
32 { "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
33 { "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
34 };
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
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 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
38 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
39 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
40 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
41 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
42 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
43
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 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
45 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
46 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
47
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 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
49 *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
50 *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
51
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
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 static DMOptArg optList[] =
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 {
966617f0f6cd Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55 { 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
56 { 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
57 { 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
58 { 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
59
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 { 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
61 { 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
62
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 { 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
64 { 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
65 { 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
66
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 { 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
68 { 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
69 };
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
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 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
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
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 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
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 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
77 dmPrintBanner(stdout, dmProgName, "[options]");
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 dmArgsPrintHelp(stdout, optList, optListN);
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
966617f0f6cd Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
80 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
81 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
82 {
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 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
84 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
85 }
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("\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
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
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 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
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 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
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 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
95 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
96 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
97 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
98
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 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
100 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
101 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
102
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 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
104 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
105 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
106
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 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
108 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
109 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
110
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 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
112 {
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 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
114 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
115 {
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 dmError("Invalid number of steps argument '%s'.\n", 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
117 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
118 }
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 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
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 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
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 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
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 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
126 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
127 {
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 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
129 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
130 {
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 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
132 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
133 }
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 }
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 dmError("Invalid transformation type option '%s'.\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
136 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
137 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
138 }
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 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
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 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
142 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
143 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
144 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
145 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
146 {
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 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
148 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
149 {
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 dmError("Invalid %s option argument '%s', expected a floating point value.\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
151 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
152 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
153 }
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 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
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 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
157 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
158 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
159 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
160 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
161 }
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 }
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 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
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 default:
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 dmError("Unknown argument '%s'.\n", 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
167 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
168 }
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
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 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
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
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 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
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 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
177 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
178 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
179
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 dmInitProg("gentab", "Sine, etc. table generator", "0.1", NULL, 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
181 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
182
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 // 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
184 if (!dmArgsProcess(argc, argv, optList, optListN,
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 argHandleOpt, NULL, 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
186 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
187
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 // 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
189 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
190 {
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 dmError("No transformation type set, perhaps try --help\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
192 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
193 }
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
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 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
196 {
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 dmError("Object name not specified, try --help\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
198 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
199 }
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
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 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
202 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
203 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
204 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
205 {
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 int err = dmGetErrno();
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 dmError("Could not open output file '%s', %d: %s\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
208 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
209 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
210 }
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
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
966617f0f6cd Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
213 // 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
214 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
215
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 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
217 "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
218 "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
219 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
220 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
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 );
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
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 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
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 DMFloat t = ((DMFloat) step * optSOmega) / (DMFloat) optNSteps, delta, 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
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 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
229 {
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 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
231 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
232
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_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
234 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
235 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
236 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
237 case MT_SIN_SCURVE: 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
238
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 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
240 }
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
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 value = optSOffset + delta * optSAmplitude;
966617f0f6cd Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
243
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 // 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
245 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
246 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
247
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, "%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
249 lrint(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
250 (n < optPerLine - 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
251
966617f0f6cd Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
252 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
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 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
255 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
256 }
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 }
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 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
259 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
260
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");
966617f0f6cd Add a simple utility for generating different sinus, etc. value tables in c64 assembler format.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
262
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 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
264 }