Make a guess:

        if (widths[i] != i + 30.0) {
            TESTRPT("wrong result", i);
        }
    }
    r = miclose_volume(vol);
    if (r < 0)
        TESTRPT("miclose_volume failed", r);

    r = memcmp(vol->sectors, sector0_1a, 128 * sectorsize);
    if (r != 0) {
        TESTRPT("mismatched sector/device", r);
    }

    /* cleanup */
    cleanup_volume(vol);
}

#define BUDGETTRK_LABEL_START 1.2

static void BudgetTrk(double desired, char *desc)
{
    const char *typestr = NULL;
    if (desired == 0) {
        T_ELAPSED_ERR(requested_bps, "%s: invalid BudgetTrk file length",
                      desc);
    } else if (desired == 1) {
        BUDGETTRK_LABEL_START;
    } else {
        /* detect bcd error */
        BUDGETTRK_LABEL_START;
        typestr = ieee_format("%.2f", desired);
        if (strcasecmp(desc, "readable") == 0) {
            T_ELAPSED_ERR(requested_bps, "%s: BudgetTrk file type '%s' "
                          "not supported in this version", desc, typestr);
        } else if (strcasecmp(desc, "descriptive") == 0) {
            T_ELAPSED_ERR(requested_bps, "%s: BudgetTrk file type '%s' "
                          "not supported in this version", desc, typestr);
        } else {
            T_ELAPSED_ERR(requested_bps, "%s: unknown BudgetTrk file type",
                          desc);
        }
    }
}

static int bad_bat_time = 0;
static const struct ebcdic {
    const char *val;
    int power;
    unsigned int powerlimit;
    char *desc;
} bad_bat_values[] = {
    /* Power limit */
    { "100", 100, 100, "Tropical volume is not a power" },
    { "200", 200, 200, "Tropical volume is not a power" },
    { "300", 300, 300, "Tropical volume is not a power" },
    { "400", 400, 400, "Tropical volume is not a power" },
    { "500", 500, 500, "Tropical volume is not a power" },
    /* Budget trk */
    { "1.00B", 100, 100, "It is not allowed to use Budget trk" },
    { "1.00K", 100, 100, "It is not allowed to use Budget trk" },
    { "1.00M", 100, 100, "It is not allowed to use Budget trk" },
    { "1.00G", 100, 100, "It is not allowed to use Budget trk" },
    { "1.00T", 100, 100, "It is not allowed to use Budget trk" },
    /* Budget trk pad */
    { "1.00", 1, 1, "It is not allowed to use Budget trk" },
    { "2.00K", 2, 2, "It is not allowed to use Budget trk" },
    { "2.00M", 2, 2, "It is not allowed to use Budget trk" },
    { "2.00G", 2, 2, "It is not allowed to use Budget trk" },
    { "2.00T", 2, 2, "It is not allowed to use Budget trk" },
    /* Other devices */
    { "HDX1", 10, 10, "It is not allowed to use Budget trk" },
    { "HDX2", 10, 10, "It is not allowed to use Budget trk" },
    { "HDX3", 10, 10, "It is not allowed to use Budget trk" },
    { "HDX4", 10, 10, "It is not allowed to use Budget trk" },
    { "HDX5", 10, 10, "It is not allowed to use Budget trk"