source: buchla-68k/orig/BUCHLA/TMULTS.C@ 526a993

Last change on this file since 526a993 was 3ae31e9, checked in by Thomas Lopatic <thomas@…>, 7 years ago

Imported original source code.

  • Property mode set to 100755
File size: 1.5 KB
Line 
1/*
2 =============================================================================
3 tmults. -- calculate a table of time multipliers for the Buchla 700
4 Version 5 -- 1987-09-24 -- D.N. Lynx Crowe
5 =============================================================================
6*/
7
8#include "stdio.h"
9#include "stddefs.h"
10
11#define OUT_FILE "tmultab.tmp"
12#define PRN_FILE "tmultab.prn"
13
14#define SHIFTCON 32768.0
15
16float j, m;
17int i, k[101], n;
18FILE *fp_out, *fp_prn;
19
20main()
21{
22 if (NULL EQ (fp_out = fopen(OUT_FILE, "wa"))) {
23
24 printf("Unable to open [%s] for output\n", OUT_FILE);
25 exit(1);
26 }
27
28 if (NULL EQ (fp_prn = fopen(PRN_FILE, "wa"))) {
29
30 printf("Unable to open [%s] for output\n", PRN_FILE);
31 exit(1);
32 }
33
34 printf("Creating time multiplier table on [%s]\n", OUT_FILE);
35 printf(" and documentation on [%s]\n\n", PRN_FILE);
36
37 fprintf(fp_prn, "Time Multipliers\n\n");
38 fprintf(fp_prn, "Ndx Mult 1/Mult Value\n");
39
40 for (i = 0; i LE 100; i++) {
41
42 j = 0.5 + (float)i * 0.01;
43 m = 1.0 / j;
44
45 if (m EQ 2.0) /* limit to 'almost 2.0' to avoid overflow */
46 m = 1.99999;
47
48 n = m * SHIFTCON;
49 k[i] = n;
50
51 fprintf(fp_prn, "%3d %4.2f %6.4f 0x%04x\n", i, j, m, n);
52 }
53
54 for (i = 0; i LE 100; i++) {
55
56 if (0 EQ (i % 5))
57 fprintf(fp_out, "\n\t");
58
59 fprintf(fp_out, "0x%04x, ", k[i]);
60 }
61
62 fprintf(fp_out, "\n");
63 fflush(fp_out);
64 fclose(fp_out);
65 fflush(fp_prn);
66 fclose(fp_prn);
67 printf("Time multipler table output complete.\n");
68 exit(0);
69}
Note: See TracBrowser for help on using the repository browser.