FreeCalypso > hg > freecalypso-hwlab
diff simtool/readcmd.c @ 92:0ead9444a698
fc-simtool: read operation functions factored out
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 24 Jan 2021 19:59:10 +0000 |
parents | 226b231d00f3 |
children | 5f826e428641 |
line wrap: on
line diff
--- a/simtool/readcmd.c Sun Jan 24 18:46:11 2021 +0000 +++ b/simtool/readcmd.c Sun Jan 24 19:59:10 2021 +0000 @@ -9,7 +9,6 @@ char **argv; { unsigned offset, len; - u_char cmd[5]; int rc; offset = strtoul(argv[1], 0, 0); @@ -22,26 +21,9 @@ fprintf(stderr, "error: length argument is out of range\n"); return(-1); } - /* READ BINARY command APDU */ - cmd[0] = 0xA0; - cmd[1] = 0xB0; - cmd[2] = offset >> 8; - cmd[3] = offset; - cmd[4] = len; - rc = apdu_exchange(cmd, 5); + rc = readbin_op(offset, len); if (rc < 0) return(rc); - if (sim_resp_sw != 0x9000) { - fprintf(stderr, "bad SW response to READ BINARY: %04X\n", - sim_resp_sw); - return(-1); - } - if (sim_resp_data_len != len) { - fprintf(stderr, - "error: READ BINARY returned %u bytes, expected %u\n", - sim_resp_data_len, len); - return(-1); - } display_sim_resp_in_hex(); return(0); } @@ -50,7 +32,6 @@ char **argv; { unsigned recno, len; - u_char cmd[5]; int rc; recno = strtoul(argv[1], 0, 0); @@ -74,26 +55,9 @@ } len = curfile_record_len; } - /* READ RECORD command APDU */ - cmd[0] = 0xA0; - cmd[1] = 0xB2; - cmd[2] = recno; - cmd[3] = 0x04; - cmd[4] = len; - rc = apdu_exchange(cmd, 5); + rc = readrec_op(recno, 0x04, len); if (rc < 0) return(rc); - if (sim_resp_sw != 0x9000) { - fprintf(stderr, "bad SW response to READ RECORD: %04X\n", - sim_resp_sw); - return(-1); - } - if (sim_resp_data_len != len) { - fprintf(stderr, - "error: READ RECORD returned %u bytes, expected %u\n", - sim_resp_data_len, len); - return(-1); - } display_sim_resp_in_hex(); return(0); }