Corrected the code after reading less ambigous specification I ordered.
. C1 = Logical length of record C, i.e. 187 + number of extension records.
``Die Satzlängenangabe gezieht sich mit Ausnahme des konstanten
Teils nicht auf die Satzabschnittlänge der Disketten, sondern auf
die logische Satzlänge (konstanter Teil 187 Bytes +
Erweiterungsteil(e) zu je 29 Bytes), max. "0622".''
What does this mean? There can only be 15 extension records and an
extension record has the size of 29 bytes. Hence the old code was
wrong and the very old code was correct. *sigh*