По логике работы программы форматирования - этот бит должен сбрасываться, а генератор CRC перезапускаться то ли после каждого перехода бита WM из 0 в 1 при котором в сдвиговом регистре находится байт 0xA1, то ли просто после каждого попадания при записи байта 0xA1 в сдвиговый регистр, если при этом установлен бит 14.
Записав заголовок сектора - программа форматирования ждёт установки бита 14, чтобы была выполнена запись CRC, потом без единого перехода в режим чтения - пишет промежуток, маркер данных, данные и затем повторно ожидает записи CRC:
Код:
5552$: CALL 7614$ ; Запись GAP, синхрозоны и маркера заголовка
5556$: TSTB @R4 ; Контроллер готов к приему?
BPL 5556$ ; Нет
MOV 14(R3),@R5 ; Записать дорожку/сторону в заголовок
MOV 2(R3),@R4 ; Выключить запись маркера
5572$: TSTB @R4 ; Контроллер готов к приему?
BPL 5572$ ; Нет
MOV R2,@R5 ; Записать длину/номер сектора в заголовок
MOV #13,R0 ; R0 = длина GAP2
MOV #175641,16(R3) ; Будет записываться маркер данных 0xFBA1
5612$: BIT #40000,@R4 ; CRC заголовка записана?
BEQ 5612$ ; Нет
CALL 7614$ ; Запись GAP2, синхрозоны и маркера данных
MOV R1,R0 ; R0 = размер сектора в словах
5626$: TSTB @R4 ; Контроллер готов к приему?
BPL 5626$ ; Нет
MOV 34(R3),@R5 ; Записать первое слово заполнителя
MOV 2(R3),@R4 ; Выключить запись маркера
DEC R0 ; Уменьшить число записываемых слов
5644$: TSTB @R4 ; Контроллер готов к приему?
BPL 5644$ ; Нет
MOV 34(R3),@R5 ; Записать заполнитель в цикле
SOB R0,5644$
INC R2 ; Увеличить номер сектора
MOVB 62(R3),R0 ; R0 = размер GAP3 в словах
MOV #177241,16(R3) ; Далее записывается маркер заголовка 0xFEA1
5672$: BIT #40000,@R4 ; CRC зоны данных записана?
BEQ 5672$ ; Нет
Понятно, что в ходе записи маркера данных - бит 14 сбросился, а генератор CRC перезапустился, но обязательно ли для этого устанавливать бит WM и сработает ли такой "перезапуск" до записи CRC - не понятно.