# HG changeset patch # User Mychaela Falconia # Date 1611540976 0 # Node ID 29cc5612797aa19eec158250547a69ac8821c00f # Parent 454ff8bd0b83d3e4413f232cd4a2d74a77803f59 fc-simtool: update-rec command implemented diff -r 454ff8bd0b83 -r 29cc5612797a simtool/dispatch.c --- a/simtool/dispatch.c Mon Jan 25 01:54:43 2021 +0000 +++ b/simtool/dispatch.c Mon Jan 25 02:16:16 2021 +0000 @@ -22,6 +22,7 @@ extern int cmd_select(); extern int cmd_telecom_sum(); extern int cmd_update_bin(); +extern int cmd_update_rec(); extern int display_sim_resp_in_hex(); @@ -51,6 +52,7 @@ {"sim-resp", 0, 0, display_sim_resp_in_hex}, {"telecom-sum", 0, 0, cmd_telecom_sum}, {"update-bin", 2, 2, cmd_update_bin}, + {"update-rec", 2, 2, cmd_update_rec}, {0, 0, 0, 0} }; diff -r 454ff8bd0b83 -r 29cc5612797a simtool/writecmd.c --- a/simtool/writecmd.c Mon Jan 25 01:54:43 2021 +0000 +++ b/simtool/writecmd.c Mon Jan 25 02:16:16 2021 +0000 @@ -23,3 +23,26 @@ len = rc; return update_bin_op(offset, data, len); } + +cmd_update_rec(argc, argv) + char **argv; +{ + unsigned recno; + u_char data[255]; + int rc; + + recno = strtoul(argv[1], 0, 0); + if (recno < 1 || recno > 255) { + fprintf(stderr, + "error: record number argument is out of range\n"); + return(-1); + } + rc = read_hex_data_file(argv[2], data); + if (rc < 0) + return(rc); + if (rc != curfile_record_len) { + fprintf(stderr, "error: hex data length != EF record length\n"); + return(-1); + } + return update_rec_op(recno, 0x04, data, curfile_record_len); +}