The memory buffer 128 is partitioned for convenience into three segments: segment 130 for storing program data received from the host computer, segment 132 for storing data received from a hearing aid 20, and segment 134 for storing program parameters, data values, checksum values and other miscellaneous information needed by the controller 125.