FreeCalypso > hg > freecalypso-tools
annotate ffstools/caltools/c1xx-calextr.c @ 619:f82551c77e58
libserial-newlnx: ASYNC_LOW_LATENCY patch reverted
Reports from Das Signal indicate that loadtools performance on Debian
is about the same as on Slackware, and that including or omitting the
ASYNC_LOW_LATENCY patch from Serg makes no difference. Because the
patch in question does not appear to be necessary, it is being reverted
until and unless someone other than Serg reports an actual real-world
system on which loadtools operation times are slowed compared to the
Mother's Slackware reference and on which Slackware-like performance
can be restored by setting the ASYNC_LOW_LATENCY flag.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 27 Feb 2020 01:09:48 +0000 |
parents | 7de38a7e1fa5 |
children |
rev | line source |
---|---|
294
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This program parses Compal's proprietary data structure that contains |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * the factory RF calibration values among other data, locates those RF |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * calibration records, extracts their essential content (Rx GMagic and |
296
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
5 * Tx APC values), converts this distilled content into TCS211 RF calibration |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
6 * tables (Rx agcparams and Tx levels) and writes these tables out in either |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
7 * FreeCalypso ASCII or FFS binary format. |
294
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 */ |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <sys/types.h> |
298
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
11 #include <sys/param.h> |
294
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include <sys/file.h> |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #include <string.h> |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 #include <strings.h> |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 #include <stdio.h> |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 #include <stdlib.h> |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 #include <unistd.h> |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 #define COMPAL_SECTOR_LENGTH 0x2000 |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 u_char sector[COMPAL_SECTOR_LENGTH]; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 u_char endmarker[8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 u_char record_magic[4] = {0xAA, 0x00, 0x00, 0x00}; |
296
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
24 char *ascii_output_dir, *bin_output_dir; |
294
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 |
301
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
26 struct rx_calchan_map { |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
27 unsigned upper_bound; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
28 unsigned compal_start; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
29 unsigned compal_num; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
30 }; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
31 |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
32 #define RF_RX_CAL_CHAN_SIZE 10 /* TI/FC canonical version */ |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
33 |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
34 struct rx_calchan_map rx_calchan_map_850[RF_RX_CAL_CHAN_SIZE] = { |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
35 {140, 0, 2}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
36 {152, 2, 2}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
37 {164, 4, 2}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
38 {176, 6, 2}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
39 {188, 8, 2}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
40 {200, 10, 2}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
41 {212, 12, 2}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
42 {224, 14, 2}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
43 {236, 16, 2}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
44 {251, 18, 3} |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
45 }; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
46 |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
47 struct rx_calchan_map rx_calchan_map_900[RF_RX_CAL_CHAN_SIZE] = { |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
48 { 18, 0, 3}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
49 { 36, 3, 3}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
50 { 54, 6, 3}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
51 { 72, 9, 3}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
52 { 90, 12, 3}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
53 { 108, 15, 3}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
54 { 124, 18, 3}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
55 { 987, 21, 3}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
56 {1005, 24, 3}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
57 {1023, 27, 3} |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
58 }; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
59 |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
60 struct rx_calchan_map rx_calchan_map_1800[RF_RX_CAL_CHAN_SIZE] = { |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
61 {548, 0, 6}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
62 {584, 6, 6}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
63 {620, 12, 6}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
64 {656, 18, 6}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
65 {692, 24, 6}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
66 {728, 30, 6}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
67 {764, 36, 6}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
68 {806, 42, 7}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
69 {848, 49, 7}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
70 {885, 56, 7} |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
71 }; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
72 |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
73 struct rx_calchan_map rx_calchan_map_1900[RF_RX_CAL_CHAN_SIZE] = { |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
74 {542, 0, 5}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
75 {572, 5, 5}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
76 {602, 10, 5}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
77 {632, 15, 5}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
78 {662, 20, 5}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
79 {692, 25, 5}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
80 {722, 30, 5}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
81 {752, 35, 5}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
82 {782, 40, 5}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
83 {810, 45, 5} |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
84 }; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
85 |
294
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 struct band { |
301
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
87 char *name; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
88 unsigned compal_record_id; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
89 unsigned record_length; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
90 unsigned magic2_offset; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
91 struct rx_calchan_map *rx_calchan_map; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
92 unsigned start_plnum; |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
93 unsigned end_plnum; |
294
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 } bands[] = { |
301
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
95 {"900", 0x00, 0x94, 0x54, rx_calchan_map_900, 5, 19}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
96 {"1800", 0x01, 0xC8, 0x74, rx_calchan_map_1800, 0, 15}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
97 {"1900", 0x02, 0xB4, 0x68, rx_calchan_map_1900, 0, 15}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
98 {"850", 0x18, 0x88, 0x4C, rx_calchan_map_850, 5, 19}, |
31369f326ee3
c1xx-calextr: preparations for Rx calchan conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
299
diff
changeset
|
99 {0, 0, 0, 0, 0, 0, 0} |
294
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 }; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 read_binfile(filename, offset_arg) |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 char *filename, *offset_arg; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 int fd, cc; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 u_long offset; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 char *endp; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 fd = open(filename, O_RDONLY); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 if (fd < 0) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 perror(filename); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 exit(1); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 offset = strtoul(offset_arg, &endp, 0); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 if (*endp) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 fprintf(stderr, "error: invalid offset argument \"%s\"\n", |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 offset_arg); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 exit(1); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 lseek(fd, offset, SEEK_SET); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 cc = read(fd, sector, COMPAL_SECTOR_LENGTH); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 if (cc != COMPAL_SECTOR_LENGTH) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 fprintf(stderr, |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 "error: unable to read Compal sector of %d bytes from %s at offset %s\n", |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 COMPAL_SECTOR_LENGTH, filename, offset_arg); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 exit(1); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 close(fd); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 |
298
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
131 write_rx_agcparams_ascii(band, table) |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
132 struct band *band; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
133 u_char *table; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
134 { |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
135 char pathname[MAXPATHLEN]; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
136 FILE *of; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
137 |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
138 sprintf(pathname, "%s/rx-agcparams.%s", ascii_output_dir, band->name); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
139 of = fopen(pathname, "w"); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
140 if (!of) { |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
141 perror(pathname); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
142 exit(1); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
143 } |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
144 write_rx_agcparams_table(table, of); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
145 fclose(of); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
146 } |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
147 |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
148 write_rx_agcparams_bin(band, table) |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
149 struct band *band; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
150 u_char *table; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
151 { |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
152 char pathname[MAXPATHLEN]; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
153 int fd; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
154 |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
155 sprintf(pathname, "%s/rx", bin_output_dir); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
156 mkdir_existok(pathname); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
157 sprintf(pathname, "%s/rx/agcparams.%s", bin_output_dir, band->name); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
158 fd = open(pathname, O_WRONLY|O_CREAT|O_TRUNC, 0666); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
159 if (fd < 0) { |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
160 perror(pathname); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
161 exit(1); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
162 } |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
163 write(fd, table, 8); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
164 close(fd); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
165 } |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
166 |
303
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
167 write_rx_calchan_ascii(band, table) |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
168 struct band *band; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
169 u_char *table; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
170 { |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
171 char pathname[MAXPATHLEN]; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
172 FILE *of; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
173 |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
174 sprintf(pathname, "%s/rx-calchan.%s", ascii_output_dir, band->name); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
175 of = fopen(pathname, "w"); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
176 if (!of) { |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
177 perror(pathname); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
178 exit(1); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
179 } |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
180 write_rx_calchan_table(table, of); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
181 fclose(of); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
182 } |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
183 |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
184 write_rx_calchan_bin(band, table) |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
185 struct band *band; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
186 u_char *table; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
187 { |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
188 char pathname[MAXPATHLEN]; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
189 int fd; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
190 |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
191 sprintf(pathname, "%s/rx", bin_output_dir); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
192 mkdir_existok(pathname); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
193 sprintf(pathname, "%s/rx/calchan.%s", bin_output_dir, band->name); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
194 fd = open(pathname, O_WRONLY|O_CREAT|O_TRUNC, 0666); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
195 if (fd < 0) { |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
196 perror(pathname); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
197 exit(1); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
198 } |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
199 write(fd, table, 40); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
200 close(fd); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
201 } |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
202 |
298
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
203 write_tx_levels_ascii(band, table) |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
204 struct band *band; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
205 u_char *table; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
206 { |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
207 char pathname[MAXPATHLEN]; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
208 FILE *of; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
209 |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
210 sprintf(pathname, "%s/tx-levels.%s", ascii_output_dir, band->name); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
211 of = fopen(pathname, "w"); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
212 if (!of) { |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
213 perror(pathname); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
214 exit(1); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
215 } |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
216 write_tx_levels_table(table, of); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
217 fclose(of); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
218 } |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
219 |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
220 write_tx_levels_bin(band, table) |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
221 struct band *band; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
222 u_char *table; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
223 { |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
224 char pathname[MAXPATHLEN]; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
225 int fd; |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
226 |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
227 sprintf(pathname, "%s/tx", bin_output_dir); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
228 mkdir_existok(pathname); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
229 sprintf(pathname, "%s/tx/levels.%s", bin_output_dir, band->name); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
230 fd = open(pathname, O_WRONLY|O_CREAT|O_TRUNC, 0666); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
231 if (fd < 0) { |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
232 perror(pathname); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
233 exit(1); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
234 } |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
235 write(fd, table, 128); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
236 close(fd); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
237 } |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
238 |
297
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
239 do_rx_agcparams(band, compal_data) |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
240 struct band *band; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
241 u_char *compal_data; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
242 { |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
243 u_char rx_agcparams_table[8]; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
244 |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
245 bcopy(compal_data, rx_agcparams_table, 2); |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
246 /* the remaining fields are constants unchanged from TI */ |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
247 rx_agcparams_table[2] = 40; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
248 rx_agcparams_table[3] = 0; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
249 rx_agcparams_table[4] = 40; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
250 rx_agcparams_table[5] = 0; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
251 rx_agcparams_table[6] = 44; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
252 rx_agcparams_table[7] = 0; |
298
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
253 if (ascii_output_dir) |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
254 write_rx_agcparams_ascii(band, rx_agcparams_table); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
255 if (bin_output_dir) |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
256 write_rx_agcparams_bin(band, rx_agcparams_table); |
297
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
257 } |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
258 |
303
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
259 do_rx_calchan(band, compal_data) |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
260 struct band *band; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
261 signed char *compal_data; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
262 { |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
263 u_char rx_calchan_table[40], *dp; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
264 struct rx_calchan_map *map; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
265 unsigned i, j; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
266 int accum, average; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
267 |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
268 dp = rx_calchan_table; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
269 for (i = 0; i < RF_RX_CAL_CHAN_SIZE; i++) { |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
270 map = band->rx_calchan_map + i; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
271 *dp++ = map->upper_bound; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
272 *dp++ = map->upper_bound >> 8; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
273 accum = 0; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
274 for (j = 0; j < map->compal_num; j++) |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
275 accum += compal_data[map->compal_start + j]; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
276 average = accum / (int)map->compal_num; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
277 *dp++ = average; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
278 *dp++ = average >> 8; |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
279 } |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
280 if (ascii_output_dir) |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
281 write_rx_calchan_ascii(band, rx_calchan_table); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
282 if (bin_output_dir) |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
283 write_rx_calchan_bin(band, rx_calchan_table); |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
284 } |
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
285 |
297
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
286 do_tx_levels(band, compal_data) |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
287 struct band *band; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
288 u_char *compal_data; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
289 { |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
290 u_char tx_levels_table[128], *sp, *dp; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
291 unsigned num_levels, n; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
292 |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
293 bzero(tx_levels_table, sizeof tx_levels_table); |
299
7fefa4f73c6a
c1xx-calextr: off-by-1 error in the Tx levels table conversion
Mychaela Falconia <falcon@freecalypso.org>
parents:
298
diff
changeset
|
294 num_levels = band->end_plnum - band->start_plnum + 1; |
297
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
295 sp = compal_data; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
296 dp = tx_levels_table + band->start_plnum * 4; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
297 for (n = 0; n < num_levels; n++) { |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
298 *dp++ = *sp++; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
299 *dp++ = *sp++; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
300 *dp++ = n; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
301 *dp++ = 0; |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
302 } |
298
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
303 if (ascii_output_dir) |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
304 write_tx_levels_ascii(band, tx_levels_table); |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
305 if (bin_output_dir) |
734b38f634db
c1xx-calextr: output implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
297
diff
changeset
|
306 write_tx_levels_bin(band, tx_levels_table); |
297
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
307 } |
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
308 |
294
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309 process_band_record(band, offset) |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 struct band *band; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 unsigned offset; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 u_char *record; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 record = sector + offset + 8; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 if (bcmp(record, record_magic, 4)) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 printf("bad magic1, skipping\n"); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 return(-1); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 if (bcmp(record + band->magic2_offset, record_magic, 4)) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 printf("bad magic2, skipping\n"); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 return(-1); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 if (bcmp(record + band->magic2_offset + 8, record_magic, 4)) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 printf("bad magic3, skipping\n"); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 return(-1); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 } |
297
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
328 do_rx_agcparams(band, record + 4); |
303
7de38a7e1fa5
c1xx-calextr: Rx calchan conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
301
diff
changeset
|
329 do_rx_calchan(band, record + 6); |
297
b1ac1bd1dbbf
c1xx-calextr: table conversion implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
296
diff
changeset
|
330 do_tx_levels(band, record + band->magic2_offset + 12); |
294
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 return(0); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333 |
296
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
334 process_sector_data() |
294
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336 unsigned offset, next_offset; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 u_char *header; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
338 unsigned hdr_words[4]; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
339 struct band *band; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
340 int i; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341 |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 for (offset = 0; ; offset = next_offset) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343 if (offset > COMPAL_SECTOR_LENGTH - 12) |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344 break; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345 header = sector + offset; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 if (!bcmp(header, endmarker, 8)) |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 break; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
348 for (i = 0; i < 4; i++) |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
349 hdr_words[i] = header[i*2] | (header[i*2+1] << 8); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
350 if (!hdr_words[3]) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
351 fprintf(stderr, |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352 "error at offset 0x%X: rounded record length word is 0\n", |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 offset); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 exit(1); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356 if (hdr_words[3] & 3) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 fprintf(stderr, |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
358 "error at offset 0x%X: rounded record length word is not aligned to 4\n", |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
359 offset); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
360 exit(1); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
361 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
362 if (hdr_words[3] > COMPAL_SECTOR_LENGTH - offset - 8) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
363 fprintf(stderr, |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
364 "error at offset 0x%X: rounded record length spills past end of sector\n", |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
365 offset); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
366 exit(1); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 if (hdr_words[2] > hdr_words[3]) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
369 fprintf(stderr, |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 "error at offset 0x%X: native record length is greater than rounded\n", |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371 offset); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 exit(1); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
373 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
374 next_offset = offset + 8 + hdr_words[3]; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
375 if (hdr_words[0] != 0x000C) |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
376 continue; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
377 for (band = bands; band->name; band++) |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
378 if (hdr_words[1] == band->compal_record_id) |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
379 break; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
380 if (!band->name) |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
381 continue; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
382 printf("Found %s MHz calibration record at offset 0x%X\n", |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
383 band->name, offset); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
384 if (hdr_words[2] != band->record_length) { |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
385 printf("Oops, wrong length, skipping\n"); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
386 continue; |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
387 } |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
388 process_band_record(band, offset); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
389 } |
296
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
390 } |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
391 |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
392 main(argc, argv) |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
393 char **argv; |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
394 { |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
395 int c; |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
396 extern char *optarg; |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
397 extern int optind; |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
398 |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
399 while ((c = getopt(argc, argv, "a:b:")) != EOF) |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
400 switch (c) { |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
401 case 'a': |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
402 ascii_output_dir = optarg; |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
403 continue; |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
404 case 'b': |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
405 bin_output_dir = optarg; |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
406 continue; |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
407 case '?': |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
408 default: |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
409 usage: fprintf(stderr, |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
410 "usage: %s [-a ascii_outdir] [-b bin_outdir] c1xx-binfile offset\n", |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
411 argv[0]); |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
412 exit(1); |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
413 } |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
414 if (argc - optind != 2) |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
415 goto usage; |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
416 read_binfile(argv[optind], argv[optind+1]); |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
417 if (ascii_output_dir) |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
418 mkdir_existok(ascii_output_dir); |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
419 if (bin_output_dir) |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
420 mkdir_existok(bin_output_dir); |
77d561735b07
c1xx-calextr: preparations for both ASCII and binary output
Mychaela Falconia <falcon@freecalypso.org>
parents:
294
diff
changeset
|
421 process_sector_data(); |
294
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
422 exit(0); |
1416fe200069
c1xx-calextr started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
423 } |