Зачем группа сдвигается на семь? В какой именно процедуре (вот в исходнике во вложении этого поста можно сориентироваться)? Значит, аффторы там накосячили с разрядностью переменной которую двигают, она должна быть 24-разрядная, а не 16 разрядная. Чтобы не улетали значащие биты.
Я DPB формирую (в fdisk) по описаниям от CP/M 2.2, которые встречал и в русских и в английских источниках (примерно одно и то же везде пишут), где прямым текстом пишут, что для групп(кластера) размером в 16кб BSH,BLM,EXM должны быть таким-то. Вот должны и все тут.
Если не затруднит, распиши как я пишу, типо на пальцах: такая-то переменная DBP, такое-то значение, потому что в коде оно так. Потому что из того что я читал не следует ограничение на файловую систему ни в 8М ни 32М. И согласно тем описаниям, ошибки в DPB я не нахожу.
По "номеру записи" я тебя тупо не понял. Т.к. в описаниях CP/M record - это относится к файлу (та самая текущая позиция по которой читается 128-байтная запись из файла), все что к диску относится - это что угодно другое (группа, сектор, дорожка,...).
Что имеется в виду под "номер записи файловой системы"? Группа (кластер), номер которых указывается в FCB-шках в позициях FCB+16...FCB+31? Других логических единиц хранения на диске вроде нету у CP/M. Дорожки и сектора это уже физические (они передаются в BIOS как параметры).





Ответить с цитированием