Т.к в RK-DOS секторы переменной длины (от 1 байта до 512). Чтобы это учесть с такими двумя последовательными циклами надо всякий раз модифицировать код
Не надо ничего модифицировать. Длина в DE, поэтому при DE от 0x101 до 0x200 все работает сходу. При меньших значениях на вторую часть кода надо переходить, тем самым выполнив цикл только один раз.