FreeCalypso > hg > freecalypso-hwlab
comparison simtool/hlread.c @ 103:90eff13a72fd
fc-simtool: implemented alpha field decoding and spn command
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Mon, 25 Jan 2021 04:54:47 +0000 |
| parents | 597c4e87a1f4 |
| children |
comparison
equal
deleted
inserted
replaced
| 102:29cc5612797a | 103:90eff13a72fd |
|---|---|
| 90 decode_reversed_nibbles(sim_resp_data + 1, 8, buf); | 90 decode_reversed_nibbles(sim_resp_data + 1, 8, buf); |
| 91 buf[16] = '\0'; | 91 buf[16] = '\0'; |
| 92 printf("%s parity=%c len=%u\n", buf + 1, buf[0], sim_resp_data[0]); | 92 printf("%s parity=%c len=%u\n", buf + 1, buf[0], sim_resp_data[0]); |
| 93 return(0); | 93 return(0); |
| 94 } | 94 } |
| 95 | |
| 96 cmd_spn() | |
| 97 { | |
| 98 int rc; | |
| 99 unsigned textlen; | |
| 100 | |
| 101 rc = select_op(DF_GSM); | |
| 102 if (rc < 0) | |
| 103 return(rc); | |
| 104 rc = select_op(EF_SPN); | |
| 105 if (rc < 0) | |
| 106 return(rc); | |
| 107 rc = parse_ef_select_response(); | |
| 108 if (rc < 0) | |
| 109 return(rc); | |
| 110 if (curfile_structure != 0x00 || curfile_total_size != 17) { | |
| 111 fprintf(stderr, "error: expected transparent EF of 17 bytes\n"); | |
| 112 return(-1); | |
| 113 } | |
| 114 rc = readbin_op(0, 17); | |
| 115 if (rc < 0) | |
| 116 return(rc); | |
| 117 printf("Display condition: %02X\n", sim_resp_data[0]); | |
| 118 printf("SPN: "); | |
| 119 rc = validate_alpha_field(sim_resp_data + 1, 16, &textlen); | |
| 120 if (rc >= 0) | |
| 121 print_alpha_field(sim_resp_data, textlen, stdout); | |
| 122 else | |
| 123 printf("malformed alpha field"); | |
| 124 putchar('\n'); | |
| 125 return(0); | |
| 126 } |
