FreeCalypso > hg > freecalypso-hwlab
annotate simtool/alpha_decode.c @ 128:95c2a67e1219
doc, linux-patch: update for failure to mainline DUART28C support
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Tue, 02 Feb 2021 04:32:42 +0000 | 
| parents | 90eff13a72fd | 
| children | 
| rev | line source | 
|---|---|
| 103 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 * This module contains functions for decoding and displaying alpha fields | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 * that exist in various SIM files. | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 */ | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 #include <sys/types.h> | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 #include <string.h> | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 #include <strings.h> | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 #include <stdio.h> | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 #include <stdlib.h> | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 static char gsm7_decode_table[128] = { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 '@', 0, '$', 0, 0, 0, 0, 0, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 0, 0, '\n', 0, 0, '\r', 0, 0, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 0, '_', 0, 0, 0, 0, 0, 0, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 0, 0, 0, 0, 0, 0, 0, 0, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 ' ', '!', '"', '#', 0, '%', '&', 0x27, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 '(', ')', '*', '+', ',', '-', '.', '/', | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 '0', '1', '2', '3', '4', '5', '6', '7', | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 '8', '9', ':', ';', '<', '=', '>', '?', | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 0, 'A', 'B', 'C', 'D', 'E', 'F', 'G', | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 'X', 'Y', 'Z', 0, 0, 0, 0, 0, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 0, 'a', 'b', 'c', 'd', 'e', 'f', 'g', | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 'x', 'y', 'z', 0, 0, 0, 0, 0 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 }; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 static char gsm7ext_decode_table[128] = { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 0, 0, 0, 0, '^', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 0, 0, 0, 0, 0, 0, 0, 0, '{', '}', 0, 0, 0, 0, 0, '\\', | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '[', '~', ']', 0, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 '|', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 }; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 static | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 is_gsm7_string_ok(data, nbytes) | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 u_char *data; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 unsigned nbytes; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 u_char *dp, *endp; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 int c; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 dp = data; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 endp = data + nbytes; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 while (dp < endp) { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 c = *dp++; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 if (c == 0x1B && dp < endp) | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 c = gsm7ext_decode_table[*dp++]; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 else | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 c = gsm7_decode_table[c]; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 if (!c) | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 return(0); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 } | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 return(1); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 } | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 static void | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 print_alpha_field_gsmdecode(data, nbytes, outf) | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 u_char *data; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 unsigned nbytes; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 FILE *outf; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 u_char *dp, *endp; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 int c; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 dp = data; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 endp = data + nbytes; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 putc('"', outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 while (dp < endp) { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 c = *dp++; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 if (c == 0x1B && dp < endp) | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 c = gsm7ext_decode_table[*dp++]; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 else | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 c = gsm7_decode_table[c]; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 if (c == '\n') { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 putc('\\', outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 putc('n', outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 continue; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 } | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 if (c == '\r') { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 putc('\\', outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 putc('r', outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 continue; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 } | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 if (c == '"' || c == '\\') | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 putc('\\', outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 putc(c, outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 } | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 putc('"', outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 } | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 static void | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 print_alpha_field_hex(data, nbytes, outf) | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 u_char *data; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 unsigned nbytes; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 FILE *outf; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 u_char *dp, *endp; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 fputs("HEX ", outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 dp = data; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 endp = data + nbytes; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 while (dp < endp) | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 fprintf(outf, "%02X", *dp++); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 } | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 void | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 print_alpha_field(data, nbytes, outf) | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 u_char *data; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 unsigned nbytes; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 FILE *outf; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 if (!nbytes) { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 fputs("\"\"", outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 return; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 } | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 if (data[0] & 0x80) { | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 print_alpha_field_hex(data, nbytes, outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 return; | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 } | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 if (is_gsm7_string_ok(data, nbytes)) | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 print_alpha_field_gsmdecode(data, nbytes, outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 else | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 print_alpha_field_hex(data, nbytes, outf); | 
| 
90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 } | 
