def getUserListParameterName(paramNumber, epochCount=50):
    """
    Given an epoch paramater number return a human readable description
    of what it's supposed to modify in the epoch table.
    Based on: ABFHEADR.H#L530-L549
    """
    if paramNumber == 0:
        return "CONDITNUMPULSES"
    if paramNumber == 1:
        return "CONDITBASELINEDURATION"
    if paramNumber == 2:
        return "CONDITBASELINELEVEL"
    if paramNumber == 3:
        return "CONDITSTEPDURATION"
    if paramNumber == 4:
        return "CONDITSTEPLEVEL"
    if paramNumber == 5:
        return "CONDITPOSTTRAINDURATION"
    if paramNumber == 6:
        return "CONDITPOSTTRAINLEVEL"
    if paramNumber == 7:
        return "EPISODESTARTTOSTART"
    if paramNumber == 8:
        return "INACTIVEHOLDING"
    if paramNumber == 9:
        return "DIGITALHOLDING"
    if paramNumber == 10:
        return "PNNUMPULSES"
    if paramNumber == 11:
        return "PARALLELVALUE"
    paramRemainder = paramNumber - 11

    if (paramRemainder < epochCount):
        return f"EPOCHINITLEVEL"
    paramRemainder -= epochCount

    if (paramRemainder < epochCount):
        return f"EPOCHINITDURATION"
    paramRemainder -= epochCount

    if (paramRemainder < epochCount):
        return f"EPOCHTRAINPERIOD"
    paramRemainder -= epochCount

    if (paramRemainder < epochCount):
        return f"EPOCHTRAINPULSEWIDTH"
    paramRemainder -= epochCount

    if (paramRemainder < epochCount):
        return f"EPOCHINITDURATION"
    paramRemainder -= epochCount

    return f"UNKNOWN {paramNumber}"