FreeCalypso > hg > freecalypso-tools
annotate ffstools/tiaud/decomp.c @ 416:30f6d1c32c6f
doc/Flash-boot-defect article removed (no longer relevant)
This article is no longer relevant because the issue in question
only affected one (1) defective FCDEV3B board which was not
and never will be sold.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 26 Oct 2018 07:11:08 +0000 |
parents | 568e2a2b49c8 |
children | c458e33060bf |
rev | line source |
---|---|
163
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This utility decompiles a binary /aud/*.cfg file read out of FFS |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * into our ASCII text representation. |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 */ |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <sys/types.h> |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <sys/file.h> |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <sys/stat.h> |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <stdio.h> |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <stdint.h> |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include <endian.h> |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include <stdlib.h> |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #include <unistd.h> |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 #include "binstruct.h" |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 struct audio_cfg_bin bin; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 FILE *outf; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 read_bin_file(filename) |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 char *filename; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 int fd; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 struct stat st; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 fd = open(filename, O_RDONLY); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 if (fd < 0) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 perror(filename); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 exit(1); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 fstat(fd, &st); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 if (!S_ISREG(st.st_mode)) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 fprintf(stderr, "%s is not a regular file\n", filename); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 exit(1); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 if (st.st_size != sizeof(struct audio_cfg_bin)) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 fprintf(stderr, "%s has the wrong length\n", filename); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 exit(1); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 read(fd, &bin, sizeof bin); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 close(fd); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 emit_fir(table) |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 uint16_t *table; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 int i; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 for (i = 0; i < 31; i++) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 if ((i % 8) == 0) |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 fprintf(outf, "\tfir %2d", i); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 fprintf(outf, " 0x%04X", le16toh(table[i])); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 if (i == 7 || i == 15 || i == 23 || i == 30) |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 putc('\n', outf); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 emit_ascii() |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 int i; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 fprintf(outf, "voice-path %u\n", bin.voice_path); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 switch (bin.mic_mode) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 case AUDIO_MICROPHONE_HANDHELD: |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 fprintf(outf, "mic default {\n"); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 break; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 case AUDIO_MICROPHONE_HANDFREE: |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 fprintf(outf, "mic aux {\n"); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 break; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 case AUDIO_MICROPHONE_HEADSET: |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 fprintf(outf, "mic headset {\n"); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 break; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 default: |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 fprintf(stderr, "error: unknown microphone mode 0x%02X\n", |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 bin.mic_mode); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 exit(1); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 fprintf(outf, "\tgain %d\n", bin.mic_bytes[0]); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 if (bin.mic_mode == AUDIO_MICROPHONE_HANDFREE) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 fprintf(outf, "\textra-gain %d\n", bin.mic_bytes[1]); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 fprintf(outf, "\toutput-bias %d\n", bin.mic_bytes[2]); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 } else |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 fprintf(outf, "\toutput-bias %d\n", bin.mic_bytes[1]); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 emit_fir(bin.mic_fir); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 fputs("}\n", outf); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 switch (bin.speaker_mode) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 case AUDIO_SPEAKER_HANDHELD: |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 fprintf(outf, "speaker ear {\n"); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 break; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 case AUDIO_SPEAKER_HANDFREE: |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 fprintf(outf, "speaker aux {\n"); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 break; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 case AUDIO_SPEAKER_HEADSET: |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 fprintf(outf, "speaker headset {\n"); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 break; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 case AUDIO_SPEAKER_BUZZER: |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 fprintf(outf, "speaker buzzer {\n"); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 break; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 case AUDIO_SPEAKER_HANDHELD_HANDFREE: |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 fprintf(outf, "speaker ear+aux {\n"); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 break; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 default: |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 fprintf(stderr, "error: unknown speaker mode 0x%02X\n", |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 bin.speaker_mode); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 exit(1); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 if (bin.speaker_mode != AUDIO_SPEAKER_BUZZER) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 fprintf(outf, "\tgain %d\n", bin.speaker_bytes[0]); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 fprintf(outf, "\taudio-filter %d\n", bin.speaker_bytes[1]); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 emit_fir(bin.speaker_fir); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 } else |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 fprintf(outf, "\tactivate %d\n", bin.speaker_bytes[0]); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 fputs("}\n", outf); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 fprintf(outf, "sidetone %d\n", bin.sidetone_gain); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 fputs("aec", outf); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 for (i = 0; i < 5; i++) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 putc(' ', outf); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 if (bin.aec_words[i]) |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 fprintf(outf, "0x%X", le16toh(bin.aec_words[i])); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 else |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 putc('0', outf); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 putc('\n', outf); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 main(argc, argv) |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 char **argv; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 if (argc < 2 || argc > 3) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 fprintf(stderr, "usage: %s infile [outfile]\n", argv[0]); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 exit(1); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 read_bin_file(argv[1]); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 if (argc > 2) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 outf = fopen(argv[2], "w"); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 if (!outf) { |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 perror(argv[2]); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 exit(1); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 } |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 } else |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 outf = stdout; |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 emit_ascii(); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 exit(0); |
568e2a2b49c8
tiaud-decomp utility written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 } |